Как сделать так, чтобы макрос находил все экземпляры значения в таблице Excel? - PullRequest
0 голосов
/ 10 июля 2020

Не уверен, имеет ли вопрос смысл, но объясню позже. У меня есть два набора данных на разных вкладках Excel, один с номерами оборудования, а другой со всей соответствующей информацией (заказы на работу, приоритеты и т. Д. c.) Однако есть номера оборудования с несколькими записями на другой вкладке. Например, номер оборудования 526176 появляется два раза. Он имеет два разных номера заказа на работу: 6852132 и 6852135 . Однако мой код, который просматривает каждый лист в цикле, чтобы найти, где информация совпадает, и вводит данные на новой вкладке, вводит только последний экземпляр и дважды показывает задание 6852135. То же самое и с другими. Я знаю, что это связано с r = r + 1, но не знаю, как это сделать. Вот что выводит код , Вот скриншот вкладки «Dept Master» и Вот вкладка «Sheet1» со всей информацией о номере оборудования . Вот мой код:

Sub test6()

    Dim sheet1range As Range, masterrange As Range, eqtnumber As Variant, eqtnumber2 As Variant

  r = 0

  Workbooks("S1 PM Equipment List of JDE Numbers - Master Tool 6-24-2020").Activate


    Sheets("Sheet1").Select

         Set sheet1range = Sheets("Sheet1").Range(Range("H2"), Range("H2").End(xlDown))
         

    Sheets("Dept Eqt Master").Select

        Set masterrange = Sheets("Dept Eqt Master").Range(Range("A2"), Range("A2").End(xlDown))
    
    
            For Each eqtnumber In masterrange

                For Each eqtnumber2 In sheet1range
                

                    If eqtnumber = eqtnumber2 Then
            
                         Workbooks("Shelby Site Equipment").Sheets("Sheet3").Range("A1").Offset(r, 5).Value = eqtnumber2.Offset(0, -7)
                         Workbooks("Shelby Site Equipment").Sheets("Sheet3").Range("A1").Offset(r, 6).Value = eqtnumber2.Offset(0, -5)
                         Workbooks("Shelby Site Equipment").Sheets("Sheet3").Range("A1").Offset(r, 7).Value = eqtnumber2.Offset(0, -2)
                         Workbooks("Shelby Site Equipment").Sheets("Sheet3").Range("A1").Offset(r, 8).Value = eqtnumber2.Offset(0, -1)
                  
                  End If
                  
        Next eqtnumber2
        
            r = r + 1

        Next eqtnumber

   Call Macro4

   Sheets("Sheet3").Name = "S1 PM Eqt"

End Sub

...