使用参数调用模块时VBA错误1004

时间:2015-02-19 17:23:55

标签: vba excel-vba runtime-error excel

这是我的第一篇文章,请耐心等待。

当我尝试从用户表单调用模块并传递参数时,我得到运行时错误1004。我确定答案非常明显,但我不擅长传递论据。

点击提交按钮时从用户表单:

Sub SubmitButton_Click()

Dim addRowValue As Integer

addRowValue = LineBox.Value

MsgBox "Add " & addRowValue & " rows."
Call Sheet1.ResizeTable(addRowValue)

End Sub

来自Sheet1:

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工作正常,但是当我添加参数时,我收到错误。此外,当我将变量ResizeTable()更改为设定数字并运行时,模块addRowValue正常工作。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

问题是你要将字符串赋给整数类型的变量。

更改

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