Ich versuche, einfache Daten in zwei Textfelder in einem Benutzerformular eingegeben und dann diese Daten zu einer Tabelle mit dem Namen "AvantAct" hinzugefügt werden. Ich möchte die Daten in die erste leere Zeile in der Tabelle jedes Mal eingegeben werden, wenn das Benutzerformular ausgeführt wird. Interessanterweise funktionierte das erste Mal, als ich das tat, einwandfrei. Aber nachdem ich die Arbeitsmappe verlassen habe und dann später wieder darauf zugreife, scheint ich folgendes zu bekommen: -Laufzeitfehler '91' Beim Hinzufügen von Benutzerformulardaten zu Tabelle
Laufzeitfehler '91': Objektvariable oder Mit Blockvariable nicht gesetzt.
Wenn ich debuggen die folgende Zeile markiert ist:
tbl.DataBodyRange(lrow2, 1). Value = Me.TxtDate.Value
ich, dass meine Tabelle derzeit hinzufügen sollte ein leer ist (frisch eingeführt) Tisch. Es hat 8 Spalten (mit Kopfzeilen), eine leere Zeile (vom Einfügen) und eine Gesamtzeile.
Irgendwelche Vorschläge?
Private Sub SubmitButton_Click()
Dim ws As Worksheet
Dim tbl As ListObject
Dim TxtDate As Date
Dim TxtPmt As Currency
Dim col As Integer
Dim lrow As Range
Dim lrow2 As Long
Set ws = ActiveWorkbook.Worksheets("Avant")
Set tbl = ws.ListObjects.Item("AvantAct")
If tbl.ListRows.Count > 0 Then
Set lrow = tbl.ListRows(tbl.ListRows.Count).Range
For col = 1 To lrow.Columns.Count
If Trim(CStr(lrow.Cells(1, col).Value)) <> "" Then
tbl.ListRows.Add
Exit For
End If
Next col
End If
lrow2 = tbl.ListRows.Count
tbl.DataBodyRange(lrow2, 1).Value = Me.TxtDate.Value
tbl.DataBodyRange(lrow2, 3).Value = Me.TxtPmt.Value
Unload Me
End Sub
Gibt es mehr Code, der nicht hier ist? Es funktioniert für mich der Unterschied ist, dass ich 'Me.TxtDate.Value' nicht hatte, wenn es dort stoppt, zeigt das unmittelbare Fenster Ihnen den Wert an? '? Me.TxtDate.Value' –
Der einzige andere Code ist das Setzen des Standardwertes und Fokus für die Txtboxen. Und nein, es zeigt nicht den Wert – Aaron
Können Sie den Code zeigen, den Sie arbeiten? – Aaron