Можно ли искать значение из другого листа в той же книге? - PullRequest
0 голосов
/ 29 мая 2019

У меня есть рабочая тетрадь с несколькими таблицами.Один из листов называется «Master Filtered», а другой - «MTL ИЛИ TOR». Я хочу заполнить столбец K листа «Master Filtered» значением поиска из листа «MTL or TOR» во второмколонка.Я написал этот кусок кода, но он не работает.

Sub MTL_OR_TOR()
    Dim AcctNb As String
    Dim result As String


    Worksheets("Master Filtered").Activate 
    Dim lastrow As Long
    lastrow = Cells(Rows.Count, 1).End(xlUp).Row


    For G = 4 To lastrow

    AcctNb = Cells(G, 3).Value

    Set myrange = Worksheets("MTL OR TOR").Range("AA4:AB685") 'Range in which the table MTL or TOR should be entered
    result = Application.WorksheetFunction.VLookup(AcctNb, myrange, 2, False)

    Range("K" & G).Value = result
    Next

End Sub

У вас есть идеи, почему этот код не работает и как его исправить?

Я думал, может быть, моя ошибканаходится в строке, начинающейся с Set myrange= Worksheets("MTL OR TOR"), но не смог понять.

1 Ответ

0 голосов
/ 30 мая 2019
Sub MTL_OR_TOR()
    ' Name your variables in a meaningful way and indicate their type
    Dim strAcctNb As String
    Dim strResult As String
    Dim lngLastRow As Long
    Dim lngLoop As Long
    Dim rngLookup As Range

    'Set your range and variables before you execute the code for readability
    Set rngLookup = Worksheets("MTL OR TOR").Range("AA4:AB685") 'Range in which the table MTL or TOR should be entered

    'Do not Activate or Select unless you really have to
    'Worksheets("Master Filtered").Activate

    With Worksheets("Master Filtered")

        lngLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row

        For lngLoop = 4 To lngLastRow
            strAcctNb = .Cells(lngLoop, 3).Value
            strResult = Application.WorksheetFunction.VLookup(strAcctNb, rngLookup, 2, False)
            .Range("K" & lngLoop).Value = strResult
        Next

    End With

End Sub
...