Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Microsoft Office и VBA > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 19.03.2009, 13:40   #1
Bezdar
Форумчанин
 
Регистрация: 03.06.2008
Сообщений: 208
Репутация: 18
По умолчанию определение последней заполненной ячейки

определяю последнюю заполненную ячейку
... range().end(xlDown).row

Определяет корректно.
Но! В некоторых файлах определяет последнюю заполненную ячейку - 65536.
Абсурд какой-то. В листе заполнено максимум 30-40 строк, а не все подряд до 65536.
Bezdar вне форума   Ответить с цитированием
Старый 19.03.2009, 13:45   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Адрес: Россия, Урал
Сообщений: 6,838
Репутация: 1220

skype: ExcelVBA.ru
По умолчанию

range("ячейка").end(xlDown).row равносильно выделению ячейки с последующим нажатием Ctrl + СтрелкаВниз

Поставьте курсор в пустую ячейку ниже таблицы, и нажмите указанную комбинацию клавиш.
Вы и попадёте на строку 65536.

Последнюю заполненную ячейку лучше определять так:
Выделяем ячейку в нужном столбце в строке 65536, и нажимаем Ctrl + СтрелкаВверх

В виде кода это выглядит так:
Код:
dim ПоследняяЯчейка as range
set ПоследняяЯчейка = range("b65000").end(xlup)

НомерПоследнейСтроки = range("b65000").end(xlup).row

Последний раз редактировалось EducatedFool; 12.06.2009 в 18:16.
EducatedFool вне форума   Ответить с цитированием
Старый 19.03.2009, 14:11   #3
Bezdar
Форумчанин
 
Регистрация: 03.06.2008
Сообщений: 208
Репутация: 18
По умолчанию

Вашу логику поняла, но всегда пользовалась этим кодом, и никогда он меня не подводил (точно указывал, какая последняя заполненная ячейка в определяемом столбце).
Попадались файлы, в которых были указаны строки (не 65536), а скажем, на несколько строк ниже последней заполненной. Пыталась в таком случае удалить все значения из этих строк (визуально они не были заполнены) - все равно читал не последнюю заполненную. Только когда удаляла эти "лишние" строки, определял все, как надо. Думаю, дело не в коде.
Bezdar вне форума   Ответить с цитированием
Старый 19.03.2009, 16:28   #4
Bezdar
Форумчанин
 
Регистрация: 03.06.2008
Сообщений: 208
Репутация: 18
По умолчанию

Проэкспериментировала. Сделала копию с "больного" файла, удалила все пустые строки по 65536. В файле-копии определяет 39 строк, в оригинале - 65536. Чтобы это значило?
Bezdar вне форума   Ответить с цитированием
Старый 20.03.2009, 10:55   #5
Bezdar
Форумчанин
 
Регистрация: 03.06.2008
Сообщений: 208
Репутация: 18
По умолчанию

Борьба с Excel-ем протекает с переменным успехом. "Больной" файл самоизлечился и стал показывать 39 строк.
Bezdar вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определение номера последней строки выделенного диапазона НеВа6464 Microsoft Office Excel 2 17.05.2009 14:36
Поиск последней записи в определенной строке Maxx Microsoft Office Excel 5 04.03.2009 15:01
Подскажите иной способ нахождения последней пустой ячейки! Maxx Microsoft Office Excel 6 29.12.2008 12:40
Определение выделенной ячейки в таблице в Delphi Гео Помощь студентам 3 13.06.2008 14:51
как найти длину последней подстроки в паскале Artem1987 Помощь студентам 1 27.12.2007 19:17


16:42.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.