Уважаемые специалисты VBA? прошу помочь дописать макрос, точнее дополнить правильно код. Смысл на Листе 1 макрос загружает данные со второго столбца в массив и преобразовует выгружает на второй лист в первый столбец и во второй столбец на первый лист, я хотел бы более правильней записать код чтоб он сначала выплнил копирование второго столбца вставил в первый и только после этого начал макрос загрузки данных в массив. Я просто сделал copy-pasteхотелось бы более профессионально. Заранее спасибо
Код |
---|
Sub ABC() Dim sh1, sh2, I&, j&, x& Dim arr1(), arr2() On Error Resume Next arr1 = Sheets(1).UsedRange.Value With Sheets(2) arr2 = .Range("a1:a" & .Cells(.Rows.Count, 1).End(xlUp).Row).Value ReDim Preserve arr2(LBound(arr2) To UBound(arr2), 1 To 2) For I = LBound(arr2) To UBound(arr2) For j = LBound(arr1) To UBound(arr1) If arr1(j, 1) = arr2(I, 1) Then arr2(I, 2) = arr1(j, 2) For x = LBound(arr1, 2) To UBound(arr1, 2) arr1(j, x) = "IsEmpty" Next x Exit For End If Next j, I .Range("a1").Resize(UBound(arr2), UBound(arr2, 2)) = arr2 I = .Cells(.Rows.Count, 2).End(xlUp).Row For j = 1 To I If .Cells(j, 3) = "" Then .Cells(j, 3).Value = Application.WorksheetFunction.VLookup(.Cells(j, 2), Sheets(1).Columns("a:d"), 4, 0) Next j End With End Sub |