Excel UserForm运行时错误|应用程序定义或对象定义错误

Excel UserForm运行时错误|应用程序定义或对象定义错误,excel,vba,checkbox,listbox,userform,Excel,Vba,Checkbox,Listbox,Userform,我用Excel制作了一个用户表单。它有文本框、复选框和命令按钮。 UserForm以文本框开始,然后出现一些复选框,文本框继续cmdAddData\单击可将数据发送到工作表。我找了很多,但我是这里的新手 当我想发送数据时,它会给出 运行时错误、应用程序定义错误或对象定义错误 感谢所有的帮助 Private Sub cmdAddData_Click() lastrow = ThisWorkbook.Worksheets("00. Active Customers").Cells(Rows.Coun

我用Excel制作了一个用户表单。它有文本框、复选框和命令按钮。 UserForm以文本框开始,然后出现一些复选框,文本框继续
cmdAddData\单击
可将数据发送到工作表。我找了很多,但我是这里的新手

当我想发送数据时,它会给出

运行时错误、应用程序定义错误或对象定义错误

感谢所有的帮助

Private Sub cmdAddData_Click()
lastrow = ThisWorkbook.Worksheets("00. Active Customers").Cells(Rows.Count, 1).End(xlUp).Row

ThisWorkbook.Worksheets("00. Active Customers").Cells(lastrow + 1, 0).Value = txtDate.Text
ThisWorkbook.Worksheets("00. Active Customers").Cells(lastrow + 1, 1).Value = txtName.Text

'after 34 textboxes, now for checkboxes

If cbxADSL.Value = True Then
ThisWorkbook.Worksheets("00. Active Customers").Cells(lastrow + 1, 35).Value = "Yes"
Else
ThisWorkbook.Worksheets("00. Active Customers").Cells(lastrow + 1, 35).Value = "No"
End If


If cbxAlarm.Value = True Then
ThisWorkbook.Worksheets("00. Active Customers").Cells(lastrow + 1, 36).Value = "Yes"
Else
ThisWorkbook.Worksheets("00. Active Customers").Cells(lastrow + 1, 36).Value = "No"
End If


'after checkboxes, now for textboxes

ThisWorkbook.Worksheets("00. Active Customers").Cells(lastrow + 1, 122).Value = txtFirstContact.Text
ThisWorkbook.Worksheets("00. Active Customers").Cells(lastrow + 1, 123).Value = txtLastContact.Text


End Sub
问题是
单元格(lastrow+1,0)

单元格
单元格(行、列)
一样使用,但列编号以
1开始,列
0
不存在

此外,您还可以使用和减少代码:

Private Sub cmdAddData\u Click()
使用此工作簿。工作表(“00.活动客户”)
lastrow=.Cells(.Rows.Count,1).End(xlUp).Row
.Cells(lastrow+1,0).Value=txtDate.Text'问题是
单元格(lastrow+1,0)

单元格
单元格(行、列)
一样使用,但列编号以
1开始,列
0
不存在

此外,您还可以使用和减少代码:

Private Sub cmdAddData\u Click()
使用此工作簿。工作表(“00.活动客户”)
lastrow=.Cells(.Rows.Count,1).End(xlUp).Row

.Cells(lastrow+1,0).Value=txtDate.Text'在哪一行出现错误?嘿:)。在以本工作簿开头的第三行。工作表(“00.活跃客户”)……啊,当然:
单元格
的用法与
单元格(行、列)
类似,但您编写了
单元格(lastrow+1,0)
。问题是列编号以
1
开始,而列
0
不存在此外,我建议将for
用于此工作簿。工作表(“00.活动客户”)
。所以你不必一遍又一遍地重复。非常感谢你,伙计!成功了!但是我不明白其他的建议:)把它作为答案贴出来。你在哪一行得到错误?嘿:)。在以本工作簿开头的第三行。工作表(“00.活跃客户”)……啊,当然:
单元格
的用法与
单元格(行、列)
类似,但您编写了
单元格(lastrow+1,0)
。问题是列编号以
1
开始,而列
0
不存在此外,我建议将for
用于此工作簿。工作表(“00.活动客户”)
。所以你不必一遍又一遍地重复。非常感谢你,伙计!成功了!但我不明白另一条建议:)把它作为答案贴了出来。
Private Sub cmdAddData_Click()
    With ThisWorkbook.Worksheets("00. Active Customers")
        lastrow = .Cells(.Rows.Count, 1).End(xlUp).Row

        .Cells(lastrow + 1, 0).Value = txtDate.Text '<-- column number must be fixed
        .Cells(lastrow + 1, 1).Value = txtName.Text

        'after 34 textboxes, now for checkboxes
        .Cells(lastrow + 1, 35).Value = IIf(cbxADSL.Value, "Yes", "No")
        .Cells(lastrow + 1, 36).Value = IIf(cbxAlarm.Value, "Yes", "No")    

        'after checkboxes, now for textboxes
        .Cells(lastrow + 1, 122).Value = txtFirstContact.Text
        .Cells(lastrow + 1, 123).Value = txtLastContact.Text
    End With
End Sub