Добрый день!
Есть таблица в Эксель. 9 столбцов, примерно 8 тыс. строк, в потенциале 20 тыс. Каждый столбец должен заполняться по определенным правилам. Задача – проанализировать таблицу и скопировать на другой лист все строки, в которых есть ошибки с указанием ошибки или списка ошибок, если в одной строке их несколько. Из 9 столбцов – только 5 подлежат проверке, в остальных содержаться формулы.
Пока планирую методом перебора каждой строки в цикле. Примерно так. Это набросок, а не реальный код.
Прошу дать совет, как лучше организовать алгоритм. Возможно, есть более быстрый и оптимальный, чем тот, который использую, т.е. чем перебор в цикле каждой строки. Я новичок в VBA, поэтому прошу строго не судить и ответить подробнее, по возможности
Заранее большое спасибо.
Есть таблица в Эксель. 9 столбцов, примерно 8 тыс. строк, в потенциале 20 тыс. Каждый столбец должен заполняться по определенным правилам. Задача – проанализировать таблицу и скопировать на другой лист все строки, в которых есть ошибки с указанием ошибки или списка ошибок, если в одной строке их несколько. Из 9 столбцов – только 5 подлежат проверке, в остальных содержаться формулы.
Пока планирую методом перебора каждой строки в цикле. Примерно так. Это набросок, а не реальный код.
Код |
---|
If Cells(i, “a”) <> Cells(i-1,”b”) Then CodeErr = "Значение А не равно предыдущему значению В" ErrNar = СodeErr If Cells(i, “с”) <> 1330 Then CodeErr = "Неправильное значение С" If ErrNar <> 0 Then ErrNar = ErrNar + ", " + СodeErr Else ErrNar = CodeErr End If If Cells(i, “d”) = 0 Then CodeErr = "Значение D равно нулю" If ErrNar <> 0 Then ErrNar = ErrNar + ", " + CodeErr Else ErrNar = CodeErr End If If ErrNar <> 0 Then MsgBox "Список ошибок в строке " & i & “: “& ErrNar Else MsgBox "Нет ошибок в строке "& i End If CodeErr=0 ErrNar = 0 |
Прошу дать совет, как лучше организовать алгоритм. Возможно, есть более быстрый и оптимальный, чем тот, который использую, т.е. чем перебор в цикле каждой строки. Я новичок в VBA, поэтому прошу строго не судить и ответить подробнее, по возможности
Заранее большое спасибо.