Sie erhalten eine Fehlermeldung, weil Sie keinen Wert für die Row
Variable definiert haben. Mach das so:
Row = value
Wo value
ist eine Ganzzahl, die die Arbeitsblattzeile angibt, auf die alle Ihre Cells-Anweisungen angewendet werden sollen?
Wenn sich Ihr Code beispielsweise auf Zeile 2 auswirken sollte, sieht Ihr Code folgendermaßen aus:
Private Sub Update_Click()
Row = 2
answer = MsgBox("Are you sure you want to update the Staff Record?",
vbYesNo + vbQuestion, "Update Staff Record")
If answer = vbYes Then
Cells(Row, 1) = TextBox6.Text
Cells(Row, 2) = TextBox1.Text
Cells(Row, 3) = TextBox2.Text
Cells(Row, 4) = TextBox3.Text
Cells(Row, 5) = ComboBox1.Text
Cells(Row, 6) = ComboBox2.Text
Cells(Row, 7) = TextBox4.Text
Cells(Row, 8) = ComboBox3.Text
Cells(Row, 9) = TextBox5.Text
End If
End Sub
Im Folgenden finden Sie eine übersichtlichere Möglichkeit, die MsgBox-Funktion zum Ausführen von Code basierend auf der Antwort des Benutzers zu verwenden:
If MsgBox("Are you sure you want to update the Staff Record?", _
vbYesNo + vbQuestion, "Update Staff Record") = vbYes Then
*run this if user clicks Yes*
End If
Bei diesem Ansatz wird die Antwort des Benutzers nicht in einer Variablen gespeichert, sondern separat getestet. Stattdessen wird dasselbe in einer Codezeile ausgeführt. (Wenn Sie jedoch die Antwort des Benutzers später in Ihrem Code erneut verwenden müssen, ist das Speichern in einer Variablen die bessere Wahl.)
Cells
können nicht alleine verwendet werden. Versuchen Sie etwas wieActiveSheet.Cells(...
. Und was ist der Wert vonRow
?