VBA 调用带有参数的模块时出现错误 1004
VBA Error 1004 When Calling A Module with an Argument
这是我的第一个post所以请多多包涵。
当我尝试从我的用户表单调用模块并传递参数时,出现 运行 时错误 1004。我敢肯定答案很明显,但我是传递论点的新手。
点击提交按钮时来自用户表单:
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()
工作正常。
感谢您的帮助!
问题是您正在将字符串分配给整数类型的变量。
改变
addRowValue = LineBox.Value
到
addRowValue = CInt(LineBox.Value)
编辑:您可能还想确保用户输入一个数值,所以有类似的东西:
If IsNumeric(LineBox.Value) Then
addRowValue = CInt(LineBox.Value)
Else
MsgBox "Please enter numeric value", vbCritical
LineBox.Value = ""
End If
这是我的第一个post所以请多多包涵。
当我尝试从我的用户表单调用模块并传递参数时,出现 运行 时错误 1004。我敢肯定答案很明显,但我是传递论点的新手。
点击提交按钮时来自用户表单:
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()
工作正常。
感谢您的帮助!
问题是您正在将字符串分配给整数类型的变量。
改变
addRowValue = LineBox.Value
到
addRowValue = CInt(LineBox.Value)
编辑:您可能还想确保用户输入一个数值,所以有类似的东西:
If IsNumeric(LineBox.Value) Then
addRowValue = CInt(LineBox.Value)
Else
MsgBox "Please enter numeric value", vbCritical
LineBox.Value = ""
End If