Страницы: 1
RSS
Поиск первой пустой ячейки в диапазоне
 
Доброго дня!
Поскажите, в чем может быть дело:
Код
Код
        If Not Intersect(Target, Range("Календарь")) Is Nothing Then
            Dim ILastRow As Long
            ILastRow = Cells(9, "G").End(xlDown).Row + 1
            Cells(ILastRow, "G") = Target
            Cells(ILastRow, "G").Offset(0, 1).Select
            Cancel = True
        End If
после перезапуска ексель перестает работать, ругается на строку
Код
Cells(iLastRow, "G") = Target
работает по  Worksheet_BeforeRightClick
 
VBA поиск первой не пустой ячейки в диапазоне
Согласие есть продукт при полном непротивлении сторон
 
Цитата
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. Вроде давно уже на форуме и не первый код пишете - могли бы уже отладку освоить и находить самостоятельно ошибки подобного рода.
Изменено: Дмитрий(The_Prist) Щербаков - 13.09.2024 10:34:54
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
могли бы уже отладку освоить и находить самостоятельно ошибки
Человек 8 лет не может найти способ файлы-примеры прикладывать, а Вы про отладку кода...)
Согласие есть продукт при полном непротивлении сторон
Страницы: 1
Наверх