Я новичок в VBA, и я пытаюсь получить данные из формы vba в таблицу электронных таблиц. Я получаю сообщение об ошибке: Ошибка времени выполнения 1004, определение приложения или объектная ошибка. Строка кода ему флаги с ошибкой является: .Offset(RowCount, 0).Value = Me.FirstnameBox.Value
отправить данные из формы в таблицу электронных таблиц
Вот мой код:
Private Sub SubmitNewUser_Click()
Dim RowCount As Long
Dim ctl As Control
' Check user input
If Me.FirstnameBox.Value = "" Then
MsgBox "Please enter the users firstname.", vbExclamation, "Add New User"
Me.FirstnameBox.SetFocus
Exit Sub
End If
If Me.SurnameBox.Value = "" Then
MsgBox "Please enter the users surname.", vbExclamation, "Add New User"
Me.SurnameBox.SetFocus
Exit Sub
End If
If Me.AccessBox.Value = "" Then
MsgBox "Please enter the user number.", vbExclamation, "Add New User"
Me.AccessBox.SetFocus
Exit Sub
End If
If Not IsNumeric(Me.AccessBox.Value) Then
MsgBox "The user number must only contain a number.", vbExclamation, "Add New User"
Me.AccessBox.SetFocus
Exit Sub
End If
If Me.SecBox.Value = "" Then
MsgBox "Please enter the users security number.", vbExclamation, "Add New User"
Me.SecBox.SetFocus
Exit Sub
End If
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Sheet2")
'find first empty row in database
iRow = ws.Cells(Rows.Count, 1) _
.End(xlUp).Offset(1, 0).Row
If WorksheetFunction.CountIf(ws.Range("D1", ws.Cells(iRow, 1)), Me.AccessBox.Value) > 0 Then
MsgBox "Duplicate Code Found", vbCritical
Exit Sub
End If
' Write data to worksheet
RowCount = Worksheets("Sheet2").Range("A1").CurrentRegion.Rows.Count
With Worksheets("Sheet2").Range("A1")
.Offset(RowCount, 0).Value = Me.FirstnameBox.Value
.Offset(RowCount, 1).Value = Me.MiddlenameBox.Value
.Offset(RowCount, 2).Value = Me.SurnameBox.Value
.Offset(RowCount, 3).Value = Me.AccessBox.Value
.Offset(RowCount, 4).Value = Me.SecBox.Value
End With
End Sub
Что такое значение RowCount при его ошибках? Вы можете добавить в 'msgbox RowCount' непосредственно перед ошибкой для проверки. – Sam
Я отредактировал ваш заголовок. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –
Привет Сэм, 65536 - это показанное значение. Джон - извинения. – Brunette