Цитата |
---|
evg_glaz написал: ILastRow = Cells(9, "G").End(xlDown).Row + 1 |
необходимо проверять, что в этой переменной.
Если последняя заполненная ячейка в 9-ой строке или ранее - то Cells(9, "G").End(xlDown).Row выдаст последнюю ячейку на листе, а еще +1 и получаете несуществующую ячейку, т.к. вышли за пределы листа. Это надо проверять всегда. Т.е. если надо именно вниз от 9-ой строки искать первую пустую - то надо еще и проверку делать:
Код |
---|
If Cells(10, "G").Value <> "" then
ILastRow = Cells(9, "G").End(xlDown).Row + 1
Else
ILastRow = 10
End if |
или так:
Код |
---|
ILastRow = Cells(9, "G").End(xlDown).Row + 1
If ILastRow > Rows.Count then
ILastRow = 10
End if |
P.S. Вроде давно уже на форуме и не первый код пишете - могли бы уже отладку освоить и находить самостоятельно ошибки подобного рода.