Excel VBA Vlookup打印标签
在过去的几天里,我一直在绕圈子,试图找出使用VBA使用vlookup的最佳方法 到目前为止,我有以下代码:Excel VBA Vlookup打印标签,excel,vba,Excel,Vba,在过去的几天里,我一直在绕圈子,试图找出使用VBA使用vlookup的最佳方法 到目前为止,我有以下代码: Private Sub CommandButton21_Click() 'Print Pack Dim ws As Worksheet, ws2 As Worksheet, ws3 As Worksheet Dim nbanho As Single, tgrids As Long, banho As Double, rng1 As Range, rng2 As Range Set ws
Private Sub CommandButton21_Click() 'Print Pack
Dim ws As Worksheet, ws2 As Worksheet, ws3 As Worksheet
Dim nbanho As Single, tgrids As Long, banho As Double, rng1 As Range, rng2 As Range
Set ws = Sheets("Grid Bath")
Set ws2 = Sheets("Orders")
Set ws3 = Sheets("CL Labels")
Set rng1 = ws.Range("A1:G1048576")
Set rng2 = ws2.Range("C1:I1048576")
bath = TextBox21.Value
nbath = Application.WorksheetFunction.VLookup(bath, rng1, 7, False)
tgrids = Application.WorksheetFunction.VLookup(bath, rng2, 7, False)
ws3.Range("A1") = TextBox22.Value 'puid
ws3.Range("A2") = Date 'Date
ws3.Range("A3") = "Banho " & nbanho 'Bath Number
ws3.Range("A4") = "Total Grids: " & tgrids
ws3.Range("A5") = "*" & TextBox21.Value & "*" 'ID Bath
ws3.Range("A6") = TextBox21.Value 'ID Carbonation
'ws2.Range("A1:A6").PrintOut
End Sub
我想做的是,使用来自两个不同工作表的信息打印标签。
然而,我不断地犯错误
“1004”无法获取WorksheetFunction类的VLookup属性
我在互联网上到处都找过了,但我找到的样本和答案似乎都没有解决我的问题。如果VLOOKUP()
失败(找不到匹配项),您将收到此错误
所以你需要捕捉这个错误,例如
nbath = ""
On Error Resume Next
nbath = Application.WorksheetFunction.VLookup(bath, rng1, 7, False)
On Error Goto 0
If nbath = "" Then
Msgbox "The value '" & bath & "' could not be found in " & rng1.Resize(ColumnSize:=1).Address(RowAbsolute:=False, ColumnAbsolute:=False, External:=True)
Exit Sub
End If
此外,我建议使用
选项Explicit
并正确声明所有变量。谢谢您的回答。但是,我在尝试设置MsgBox时收到一条错误消息。“编译错误:应为:语句结束”,突出显示rng1。调整大小
任何提示?@barbaz抱歉,我的错误。就在rng1之前有一个&
缺失。请调整大小…
。修好了,噢!我懂了。我很抱歉没有注意到这一点。再次感谢你。:)抱歉再次打扰你。如果出现以下情况,代码是否缺少任何结尾?当尝试调试时,我得到一条错误消息:if没有结束。即使在你给我的代码中有一个结尾,你是对的。我把退出子系统
和结束子系统
搞砸了。