Доброго времени суток! Подскажите, пожалуйста, как заменить формулы на макрос. Книга рассчитывается миллионами формул и очень долго работает Вопрос описан в файле. Больше, Спасибо, ВСЕМ за помощь!
Sub Macro1()
Dim LastRow As Long, i As Long, j As Long, Arr(), Arr2()
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
Arr = Range(Cells(2, 2), Cells(LastRow, 3)).Value
With Sheets("Основа")
LastRow = .Cells(Rows.Count, 1).End(xlUp).Row
Arr2 = Range(.Cells(2, 2), .Cells(LastRow, 2)).Value
For i = 1 To UBound(Arr)
For j = 1 To UBound(Arr2)
If Arr2(j, 1) = Arr(i, 1) Then
Arr(i, 2) = j + 1
Exit For
End If
Next
Next
End With
Range("B2").Resize(UBound(Arr), 2).Value = Arr
End Sub
Большое Спасибо за оперативную помощь! Юрий, простите, я не силён в макросах, и, честно, (стыдно признатся) - не знаю как "завязать" вторую часть, и привязать это к одной кнопку для выполнения. Если у ВАС будет время, напишите, пожалуйста вторую часть, ... Хотя и на том БОЛЬШОЕ БОЛЬШОЕ СПАСИБО!
Спасибо, почти то, что нужно, только в Вашем примере в "База" в столбце "С" должны быть значение, как в "D", то есть , например во второй строке артикул "Ш5534" и его номер строки 25 в "Основа", то же самое с позициями 15-17
Ш5517 тут должна быть строка номер 8 вместо 0 Ш5518 тут должна быть строка номер 9 вместо 0 Ш5519 тут должна быть строка номер 10 вместо 0
в первой части нужно искать номер строки по артикулу, - названия товара в этой части не играет роли. во второй части нужно искать номер из столбца "С" уже по названию товара из "База", а не из "Основа"