Я хочу создать макрос, который будет vlookup на другом листе, и изменить значение в ячейке vlook вверх другим значением, определенным пользователем.vlookup и replace - повышение производительности
Я написал очень простой код, который заполняет мои потребности, но он очень медленный, и его запуск занимает почти 3 минуты.
Не могли бы вы предложить более простой способ или просто предложить, что не так с моим кодом.
Private Sub CommandButton1_Click()
Dim myCell As Range
Dim myLookup
Dim i As Integer
i = Sheets("Modify Order").Cells(5, 2).Value
For Each myCell In Sheets("Customer List").Range("E:E")
If myCell.Value = Sheets("Modify Order").Cells(4, 2).Value Then
myCell.Offset(0, i).Value = Sheets("Modify Order").Cells(7, 2).Value
End If
Next myCell
MsgBox "Done!"
End Sub
Сколько строк сделать вас есть в колонке E? Вы можете попытаться найти последнюю строку, которая содержит данные, прежде чем вы начнете цикл for, чтобы не тратить время на проверку ячеек, которые не содержат никаких данных. –
Попробуйте добавить эти две строки и скажите, улучшится ли это. 'LastRow = Таблицы (« Список клиентов »). Ячейки (Rows.Count, 5) .End (xlUp) .Row' ' Для каждого myCell In Sheets («Список клиентов»). Диапазон («E1: E») & LastRow & "") ' –
Может быть лучше [CodeReview] (http://codereview.stackexchange.com/questions/tagged/vba?sort=newest&pageSize=50) –