Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как узнать конец таблицы в Excel? / 16 сообщений из 16, страница 1 из 1
22.02.2005, 17:32
    #32929041
Bagin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать конец таблицы в Excel?
Здравствуйте!
Где-то случайно видел этот способ, но найти не могу.
В экселевском файле пишу макрос. Необходимо выяснить начальную и конечную ячейку таблицы без сканирования каждой строки. Ведь Excel как-то это сам делает, например, когда определяет границы печати. Как этим воспользоваться?
Заранее спасибо.
...
Рейтинг: 0 / 0
22.02.2005, 19:37
    #32929272
Processor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать конец таблицы в Excel?
Вот работающая процедура.
...
Рейтинг: 0 / 0
24.02.2005, 10:14
    #32930515
Bagin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать конец таблицы в Excel?
У меня эксэль 2003
Если проверяемый лист защищен, то при выполнении
Код: plaintext
SpecialCells(xlCellTypeLastCell)
ругается:
Нельзя использовать данную команду на защищенном листе ...

Но ведь когда на этом листе нажимаю Ctrl+End, то активной становится именно последняя ячейка, т.е. эксэль как-то определяет.
...
Рейтинг: 0 / 0
24.02.2005, 10:44
    #32930598
LongS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать конец таблицы в Excel?
Может это поможет
Range(ActiveCell, ActiveCell.End(xlDown)).Select
Еще это можно посмотреть
ActiveCell.CurrentRegion.Select
...
Рейтинг: 0 / 0
24.02.2005, 11:00
    #32930652
Processor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать конец таблицы в Excel?
BaginУ меня эксэль 2003
1. Если проверяемый лист защищен, то он ругается...
2. Но ведь когда на этом листе нажимаю Ctrl+End, то активной становится именно последняя ячейка, т.е. эксэль как-то определяет.2. Неявно используется свойство UsedRange.
Не знаю, как в 2003-м, в 97-м и 2000-м этот метод не всегда выводит на последнюю ЗАПОЛНЕННУЮ ячейку:
ИСПОЛЬЗОВАННЫЙ и ЗАПОЛНЕННЫЙ - не синонимы.
1. На время выполнения макроса в нем же можно сначала СНЯТЬ защиту (.Unprotect(Password)), а затем установить снова.
...
Рейтинг: 0 / 0
24.02.2005, 11:14
    #32930688
Bagin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать конец таблицы в Excel?
LongSМожет это поможет
Range(ActiveCell, ActiveCell.End(xlDown)).Select
Еще это можно посмотреть
ActiveCell.CurrentRegion.SelectВыделяет диапазоны не понятно как.

Вот делал еще это:
Код: plaintext
1.
2.
3.
Dim rng As Range
...
MsgBox rng.Columns.End(xlDown).Address        ' Выдает не понятно какой адрес
MsgBox rng.Rows.End(xlToRight).Address        ' Выдает не понятно какой адрес
...
Рейтинг: 0 / 0
24.02.2005, 11:16
    #32930695
Bagin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать конец таблицы в Excel?
Processor[quot Bagin]1. На время выполнения макроса в нем же можно сначала СНЯТЬ защиту (.Unprotect(Password)), а затем установить снова.Да вот не хотелось бы прописывать открыто пароль в коде
...
Рейтинг: 0 / 0
24.02.2005, 11:18
    #32930703
Bagin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать конец таблицы в Excel?
Пока сделал так: в цикле проверяю определенный столбик, и как только ячейка в нем оказывается пустой, то делаю Exit For
...
Рейтинг: 0 / 0
24.02.2005, 11:26
    #32930728
LongS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать конец таблицы в Excel?
.End(xlDown) рабоатет как Ctrl+Стрелка вниз
другие аналогично
...
Рейтинг: 0 / 0
24.02.2005, 11:40
    #32930775
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать конец таблицы в Excel?
в екселе есть понятие
1. ячейки с данными (не пустые)
2. ячейки без данных (пустые) но в которых данные были удалены.
но эта область екселем считается как область с "данными"

как их различать?
...
Рейтинг: 0 / 0
24.02.2005, 11:47
    #32930798
Bagin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать конец таблицы в Excel?
LongS.End(xlDown) рабоатет как Ctrl+Стрелка вниз
другие аналогичноПохоже что так. Там всего лишь четыре возможных значения и они наверно значат:
xlDown - Ctrl+Стрелка вниз
xlToRight - Ctrl+Стрелка вправо
xlToLeft - Ctrl+Стрелка влево
xlUp - Ctrl+Стрелка вверх
Вот где бы получить - Ctrl+End
...
Рейтинг: 0 / 0
24.02.2005, 11:58
    #32930832
Bagin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать конец таблицы в Excel?
Processor Bagin...
2. Но ведь когда на этом листе нажимаю Ctrl+End, то активной становится именно последняя ячейка, т.е. эксэль как-то определяет.2. Неявно используется свойство UsedRange.
Не знаю, как в 2003-м, в 97-м и 2000-м этот метод не всегда выводит на последнюю ЗАПОЛНЕННУЮ ячейку:
ИСПОЛЬЗОВАННЫЙ и ЗАПОЛНЕННЫЙ - не синонимы.Вроде получилось:
Код: plaintext
MsgBox ThisWorkbook.Worksheets("Лист1").UsedRange.Address
На счет "...ИСПОЛЬЗОВАННЫЙ и ЗАПОЛНЕННЫЙ - не синонимы." не знаю пока.

Всем спасибо! :)
...
Рейтинг: 0 / 0
24.02.2005, 12:49
    #32931002
marvan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать конец таблицы в Excel?
в догонку:
Код: plaintext
1.
2.
'способ определения числа использованных строк в конкретной колонке:
SheetRows = ActiveWorkbook.ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
ColRows = Application.WorksheetFunction.CountA(Range(Cells( 1 ,  3 ), Cells(SheetRows,  3 )))
...
Рейтинг: 0 / 0
24.02.2005, 14:12
    #32931233
sergeyvg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать конец таблицы в Excel?
Добрый день!
Для указанной колонки можно так получить свободную строку, даже для скрытых строк (предполагается, что последняя ячейка колонки пустая). С защищенным листом проблемы, правда, остаются.

Sub Test3()
MsgBox RealFreeRow(3) 'параметр - номер колонки
End Sub

Function RealFreeRow(WCol As Long) As Long
Dim ArDif As Range
RealFreeRow = 1
On Error Resume Next
Set ArDif = Columns(WCol).ColumnDifferences _
(comparison:=Cells(65536, WCol))
If ArDif Is Nothing Then Err.Clear: Exit Function
RealFreeRow = ArDif.Areas(ArDif.Areas.Count).Row + _
ArDif.Areas(ArDif.Areas.Count).Cells.Count
End Function

С уважением, Сергей Густокашин. Тольятти, Комсофт. ICQ 75307217
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
31.01.2013, 10:07
    #38131783
WinoVeritas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать конец таблицы в Excel?
e
...
Рейтинг: 0 / 0
31.01.2013, 10:11
    #38131788
WinoVeritas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать конец таблицы в Excel?
У меня на защищенном листе работает так:

Код: vbnet
1.
nRowEnd = Worksheets(wrksheet).Cells(Rows.Count, 1).End(xlUp).Row



nRowEnd - последняя заполненная ячейка в 1-ом столбце
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как узнать конец таблицы в Excel? / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]