Excel, последнея не пустая ячейка в столбце

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

alexx
Сообщения: 116
Зарегистрирован: 02 июл 2004, 22:29
Откуда: Hamburg

У меня Range "А1:A1000"
Как узнать сабж?
-------------
Лень - двигатель прогресса!
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

Код: Выделить всё

iLastCell = Workbooks("Test.xls").Worksheets("Qwerty").Range("A65536").End(xlUp).Address
Примечание :
Вместо имени рабочей книги, листа можно использовать индекс/номер или кодовое имя. Если подобную ячейку требуется определить в активном рабочем листе или этот код расположен в модуле листа для которого определяется эта ячейка, то в таких случаях, ссылки на рабочую книгу и лист излишни.
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

Ещё было свойство UsedRange...
Изображение
alexx
Сообщения: 116
Зарегистрирован: 02 июл 2004, 22:29
Откуда: Hamburg

спасибо!
-------------
Лень - двигатель прогресса!
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

Свойство .UsedRange и сейчас есть, но в данном конкретном случае, его использование может привести к получению некорректных результатов. Например, заполните диапазон "A1:A100" в новом рабочем листе, затем выделите ячейку "A700" и измените шрифт, кегль и т.п. после чего посмотрите на возвращаемые результаты ...
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

Виноват, проглядел в заголовке ключевой момент "непустая"....
pashulka, а приведённый вами пример отработает иначе? Т.е. метод End(xlUp) проходит только по данным?
Изображение
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

Игорь Акопян, Истинно так, только данные
anval
Сообщения: 98
Зарегистрирован: 09 ноя 2004, 10:06

Немного видоизменю вопрос. Есть Range("A1:Z1000"). Как определить номер последней строки с непустой ячейкой для этой области?
Спасибо.
Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

Попробуйте такой вариант...

Код: Выделить всё

Dim r1 As Range
Set r1 = Range("A1:Z100")

LastRow = 0
For i = r1.Rows.Count To 1 Step -1
    For j = 1 To r1.Columns.Count
        If r1.Cells(i, j).Value <> "" Then LastRow = i: GoTo 1
    Next j
Next i
1:
MsgBox LastRow
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

дык аналогично, только не Address в конце а Row
хм... только эта тема аналогична нажатию Ctrl-Up на клаве и отрабатывает по столбцу... Как вариант можно проделать эту процедуру по всем колонкам и выбрать максимальное значение.
Изображение
Ответить