【发布时间】:2015-09-01 23:26:29
【问题描述】:
我浏览了其他用户遇到的与此问题有关的各种问题,但似乎没有一个解决方案可以修复出现的错误代码。
我有一个表单提示用户输入参考号 - 他们将其输入到文本字段中,然后按 OK
'OK button from form1
Public Sub CommandButton1_Click()
refInput = refTextBox.Value
InputRef.Hide
ExportShipForm.Show
End Sub
按下此按钮后,将出现下一个表单,我希望根据第一个表单上输入的参考号填充数据。我有一个更新按钮,它将更新表单上的“标签”以显示数据 - 这是我收到错误的地方。 要更新的第一个标签是通过 Vlookup:
下面的用户点击更新按钮的第二种形式:
Public Sub btnUpdate_Click()
Call ICS_Caption
lbl_ICS.Caption = Label_ICS
End Sub
这会调用下面的函数:
Public Sub ICS_Caption()
Dim ws1 As Worksheet
refInput = InputRef.refTextBox.Value
Set ws1 = Worksheets("MACRO")
dataRef = Worksheets("Shipping Data").Range("A:K")
Label_ICS = WorksheetFunction.VLookup(refInput, dataRef, 7, False)
End Sub
每次都会出现错误 - 我已经在 VBA 外部的单元格中手动运行了 vlookup,它工作正常。 我在 Vlookup 中输入了范围,同时也使用了命名范围,但每个变体都显示相同的错误。
最终,我希望表单 2 上的标签能够根据 Vlookup 的结果进行更新。
有什么想法吗?
【问题讨论】:
-
你能用你遇到的错误更新你的问题吗?
-
您好 DragonSamu,已更新错误的标题
-
你能在
Label_ICS = WorksheetFunction.VLookup(refInput, dataRef, 7, False)行之前检查refInput的类型吗? -
一般来说,我建议您返回并将每个变量调暗为其特定类型; VBA 允许您在不这样做的情况下使用变量,但是当您没有意识到 Excel 已经假定变量是 A 类型,但您尝试像 B 类型一样使用它(即:字符串与整数等)时,通常会导致痛苦跨度>