2017-06-12 9 views
0

ich den folgenden Code für ein Command Button geschrieben habe den (Text) Inhalt eine Userform zu einem bestehenden (benannt) Dynamikbereich „MasterTable“ hinzuzufügen:Excel VBA Befehlsschaltflächen-Code nicht erkennt Objektvariable

Private Sub AddDev_Click() 

    Application.CutCopyMode = False 

    With Worksheets("Table").Range("MasterTable").ListObject.ListRows.Add 
     .Offset(1, 0).Value = NewDevRecord.NewCorp.Value 
     .Offset(1, 1).Value = NewDevRecord.NewAddr.Value 
     .Offset(1, 1).Value = NewDevRecord.NewFac.Value 
    End With 

End Sub 

Wenn ich die für und die Schaltfläche klickt, wirft es Error 91- Object Variable or With Block Variable Not Set und markiert Worksheets("Table").Range("MasterTable") als der Täter. Ist das nicht ein gültiger Weg, um einen Bereich zu referenzieren? Es funktioniert in meinen vba Buch- und Blattmodulen - Haben die UserForm-Komponenten keinen Zugriff? Was mache ich falsch?

+0

Ich glaube, wenn eine benannte Bereich aufrufen, können Sie einfach Verwende 'Mit Bereich (" MasterTable ") ...' – BruceWayne

Antwort

0

Wenn MasterTable wurde als ListObject erstellt wurde, dann würden Sie sich darauf beziehen, wie:

Worksheets("Table").ListObjects("MasterTable") 

So würde dieser Code funktionieren:

Private Sub AddDev_Click() 

    Application.CutCopyMode = False 

    With Worksheets("Table").ListObjects("MasterTable").ListRows.Add 
     .Offset(1, 0).Value = NewDevRecord.NewCorp.Value 
     .Offset(1, 1).Value = NewDevRecord.NewAddr.Value 
     .Offset(1, 1).Value = NewDevRecord.NewFac.Value 
    End With 

End Sub 
Verwandte Themen