VBA Vlookup для печати этикеток - PullRequest
0 голосов
/ 11 октября 2018

Последние несколько дней я бегал кругами, пытаясь выяснить, как лучше всего использовать vlookup с использованием VBA.

Пока у меня есть этот код:

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' Не удается получить свойство VLookup класса WorksheetFunction

Я искал везде в Интернете, но ни один изобразцы и ответы, которые я нашел, казалось, решили мою проблему.

Так вот мой код.Если бы кто-нибудь мог мне помочь, я был бы признателен.

1 Ответ

0 голосов
/ 11 октября 2018

Если 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

Кроме того, я рекомендую использовать Option Explicit и правильно объявлять все ваши переменные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...