Вы получаете ошибку, потому что вы не определили значение для переменной Row
. Сделайте это так:
Row = value
Где value
- это целое число, указывающее строку таблицы, с которой вы хотите, чтобы все ваши операторы Cells работали.
Например, если ваш код должен влиять на строку 2, ваш код будет выглядеть следующим образом:
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
Кроме того, вот более краткий способ использования функции MsgBox для выполнения кода на основе ответа пользователя:
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
Этот подход не сохраняет ответ пользователя в переменной, а затем тестирует его отдельно. Вместо этого он делает то же самое в одной строке кода. (Однако, если вам понадобится снова использовать ответ пользователя позже в своем коде, лучше сохранить его в переменной.)