Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 使用「;“设置”;VBA中的关键字不清晰_Excel_Vba - Fatal编程技术网

Excel 使用「;“设置”;VBA中的关键字不清晰

Excel 使用「;“设置”;VBA中的关键字不清晰,excel,vba,Excel,Vba,我正在尝试编辑代码,以便通过使用Excel的UserForm实际输入数据来传输数据,即输入到工作表中。听起来可能很复杂。换句话说,在UserForm中键入数据,然后单击UserForm上插入的“命令按钮”,数据将被放置在表的下一个空行上 使用的原始代码set ws=DataTable,ws作为工作表显示。虽然我知道什么是表,但我不确定什么是数据表,甚至不确定数据表和数据表之间是否有区别。我设计了一个数据表,第一行作为列标题:字段1、字段2和字段3,其中包括5行,这很简单。我将ws=Table和D

我正在尝试编辑代码,以便通过使用Excel的UserForm实际输入数据来传输数据,即输入到工作表中。听起来可能很复杂。换句话说,在UserForm中键入数据,然后单击UserForm上插入的“命令按钮”,数据将被放置在表的下一个空行上

使用的原始代码set ws=DataTable,ws作为工作表显示。虽然我知道什么是表,但我不确定什么是数据表,甚至不确定数据表和数据表之间是否有区别。我设计了一个数据表,第一行作为列标题:字段1、字段2和字段3,其中包括5行,这很简单。我将ws=Table和Dim ws设置为工作表,Dim nextRow设置为长。此时将显示UserForm,用于关闭/取消它的命令按钮将起作用。但是,当我在UserForm上输入3条数据并单击命令按钮输入/保存数据时,我得到一个错误:

运行时错误91:对象变量或未设置块变量

如果选择“调试”,则以黄色突出显示的代码行为:

nextRow = ws.Cells(Rows.Count,1).End(xlUp).Offset(1,0).Row
我一直搜索到发蓝——我只是在学习VBA,希望能在解释可能是什么方面得到一些帮助 这个问题。最有可能的是表与数据表的关系——不确定。Excels的数据表单太死板,无法使用,因为我需要使用“组合框”来确保只从中选择正确的选项

感谢您的建议或其他网站的建议,可能有利于查看。有谁能推荐一个好的在线VBA课程吗。更喜欢推荐而不是“黑暗中射击” 最美好的一周祝愿

您是否尝试过(注意
ws.Rows.Count

如果没有工作表澄清
将返回可能不是您想要的活动工作表

顺便说一句,这是我如何得到表的最后一行。我有一个计算行数的函数

Public Function CountRows(ByRef r As Range) As Integer
    If IsEmpty(r) Then
        CountRows = 0
    ElseIf IsEmpty(r.Offset(1, 0)) Then
        CountRows = 1
    Else
        CountRows = r.Worksheet.Range(r, r.End(xlDown)).Rows.Count
    End If
End Function
然后我把它当作

Set r = ws.Range("A2")  'Or start of data
N = CountRows(r)
Set nextRow = r.Offset(N+1,0).Row
Set r = ws.Range("A2")  'Or start of data
N = CountRows(r)
Set nextRow = r.Offset(N+1,0).Row