Диапазон копирования и вставки Excel на конкретном c листе в соответствии со значением ячейки - PullRequest
0 голосов
/ 06 августа 2020

У меня есть рабочая книга с основным листом под названием «NIR», содержащим следующие данные: Столбец A содержит названия продуктов (такие же, как и остальные названия рабочих листов); Столбец B содержит количество, а столбец C содержит цены.

Я хочу создать VBA для поиска в моем основном листе «NIR» в столбце A и скопировать столбцы B и C в укажите c листов в соответствии с эталонным листом «NIR», ячейки в столбце A.

Пример:

Sheet "NIR"
A3="shoes"
A4="pants"
B3 = 3 (pairs)
C3 = 10 (price)

copy B3 и C3 к листам «туфли» и «штаны» по Листу «НИР» А3

1 Ответ

1 голос
/ 06 августа 2020

Попробуйте:

Option Explicit

Sub Macro1()

    Dim LastRowNIR As Long, i As Long, LastRowWs As Long
    Dim arr As Variant
    
    With ThisWorkbook.Worksheets("NIR")
        'Find the last row of column A
         LastRowNIR = .Cells(.Rows.Count, "A").End(xlUp).Row
         
         'Import all data in an array starting from A1 to C last row
         arr = .Range("A1:C" & LastRowNIR)
         'Loop array
         For i = LBound(arr) To UBound(arr)
            
            With ThisWorkbook.Worksheets(arr(i, 1))
                'Find the last row of column B
                LastRowWs = .Cells(.Rows.Count, "B").End(xlUp).Row
                'Write in the next available row the quantity
                .Range("B" & LastRowWs + 1).Value = arr(i, 2)
                'Write in the next available row the prices
                .Range("C" & LastRowWs + 1).Value = arr(i, 3)
            End With
            
         Next i
         
    End With
    
End Sub
...