Мне нужно скопировать определенные столбцы каждой строки в листе A на лист B.
Я создал подпрограмму, которая создает 2 массива (варианты) совпадающих номеров столбцов, поэтому я могу сопоставить столбец 3 на листе A с тем, чтобы он был равен столбцу 8 на листе B и т. Д.
Все отлично работает, дело в том, что довольно медленно, вот оно:
Sub insertIntoSelectedOpps(opCols As Variant, siebelCols As Variant, ByVal length As Integer)
Dim insertRange As Range
Dim siebelRange As Range
Dim rowCount As Integer
Set insertRange = shSelected.Range("a3", "bb4") 'very wide table!'
Set siebelRange = shDatabase.UsedRange.Rows
rowCount = siebelRange.Rows.count
MsgBox "siebel row count: " & rowCount
For i = 2 To rowCount
Set insertRange = shSelected.Range("a3", "bb4")
insertRange.Insert
For x = 1 To length - 1
If opCols(x) <> -1 Then 'unequal to -1'
insertRange.Cells(1, opCols(x)).value = siebelRange.Cells(i, siebelCols(x)).value
End If
Next x
Next i
End Sub
Не беспокойтесь о случае IF, это бизнес-логика, если имя столбца в отображении не найдено.