使用参数调用模块时发生VBA错误1004
这是我的第一篇文章,请耐心听我说 当我尝试从用户窗体调用模块并传递参数时,出现运行时错误1004。我相信答案是显而易见的,但我对传递论点还不熟悉 单击“提交”按钮时从用户表单:使用参数调用模块时发生VBA错误1004,vba,excel,runtime-error,Vba,Excel,Runtime Error,这是我的第一篇文章,请耐心听我说 当我尝试从用户窗体调用模块并传递参数时,出现运行时错误1004。我相信答案是显而易见的,但我对传递论点还不熟悉 单击“提交”按钮时从用户表单: Sub SubmitButton_Click() Dim addRowValue As Integer addRowValue = LineBox.Value MsgBox "Add " & addRowValue & " rows." Call Sheet1.ResizeTable(addRowV
Sub SubmitButton_Click()
Dim addRowValue As Integer
addRowValue = LineBox.Value
MsgBox "Add " & addRowValue & " rows."
Call Sheet1.ResizeTable(addRowValue)
End Sub
从第1页:
Sub ResizeTable(addRowValue As Integer)
Dim rng As Range
Dim tbl As ListObject
Set tbl = ActiveSheet.ListObjects("DATA_INPUT")
Set rng = Range("DATA_INPUT[#All]").Resize(tbl.Range.Rows.Count + _
addRowValue, tbl.Range.Columns.Count)
tbl.Resize rng
End Sub
Call Sheet1.ResizeTable可以正常工作,但当我添加参数时,会出现错误。此外,当我将变量addRowValue更改为一个设置的数字并运行它时,模块ResizeTable工作正常
谢谢你的帮助 问题是您正在为integer类型的变量分配字符串 改变
addRowValue = LineBox.Value
到
编辑:您可能还希望确保用户输入一个数字值,以便执行以下操作:
If IsNumeric(LineBox.Value) Then
addRowValue = CInt(LineBox.Value)
Else
MsgBox "Please enter numeric value", vbCritical
LineBox.Value = ""
End If
感谢您的快速响应,我做了更改,但仍然收到相同的错误。还有其他建议吗?这是一个应用程序定义或对象定义的错误,如果有帮助的话。在Call Sheet1.ResizeTableaddRowValue中,如果有帮助的话,我也可以为文本框添加代码。这就是我的想法。Sheet1是选项卡的名称,还是对象的名称?对象可能是?选项卡名称为数据输入。如果您发布了与实际工作簿的链接。我来看看。这是最有效的方法
If IsNumeric(LineBox.Value) Then
addRowValue = CInt(LineBox.Value)
Else
MsgBox "Please enter numeric value", vbCritical
LineBox.Value = ""
End If