Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / автофильтр VBA - номер следующей строки ? / 5 сообщений из 5, страница 1 из 1
24.12.2004, 07:58:10
    #32842971
m_a_r_i_n_a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
автофильтр VBA - номер следующей строки ?
в цикле перебираю строки автофильтра
For Each IRange In Range("b2:b200")
If Not IRange.EntireRow.Hidden Then
*
*
End If
Next
как не становясь на следующую строку фильтра узнать ее номер(как можно проще)?
спасибо
...
Рейтинг: 0 / 0
24.12.2004, 11:59:30
    #32843466
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
автофильтр VBA - номер следующей строки ?
не очень понял вопрос может
IRange.row ?
...
Рейтинг: 0 / 0
24.12.2004, 12:51:30
    #32843615
Processor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
автофильтр VBA - номер следующей строки ?
Работая с методикой определения LastCell, я обнаружил (но, каюсь, не исследовал до конца) её побочный эффект:
Если отфильтровать диапазон, а затем перейти на строку, следующую за последней, получим то, что Вы ищете.
Я модифицировал упомянутую процедуру в функцию:
Код: plaintext
Public Function GetLastCell(ByRef sh As Worksheet) As Range\nDim r As Range\n\'Используется для поиска последней заполненной ячейки на листе sh:\n    If sh.Range("A1").SpecialCells(xlCellTypeLastCell).Value = "" Then\n        Set r = Cells(sh.Cells.Find("*", sh.Range("A1").SpecialCells(xlCellTypeLastCell), _\n              , , xlByRows, xlPrevious).Row, _\n              sh.Cells.Find("*", sh.Range("A1").SpecialCells(xlCellTypeLastCell), _\n              , , xlByColumns, xlPrevious).Column)\n    Else\n        Set r = sh.Range("A1").SpecialCells(xlCellTypeLastCell)\n    End If\n    Set GetLastCell = r\nEnd Function
Используя её, Вашу задачу (вероятно - см. оговорку выше) можно решить "одной строкой":
Код: plaintext
N=GetLastCell(ActiveSheet).Row+ 1 
...
Рейтинг: 0 / 0
27.12.2004, 09:38:37
    #32845400
m_a_r_i_n_a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
автофильтр VBA - номер следующей строки ?
RE: Proessor
Все получается, толко процедура GetLastCell определяет последнюю ячейку на листе, а мне нужно - в конкретном столбце.

пыталась приспособить типа
Set r = Cells(Cells.Find("*", Range("b:b").SpecialCells(xlCellTypeLastCell), , , xlByRows, xlPrevious).Row, Cells.Find("*", Range("b:b").SpecialCells(xlCellTypeLastCell), , , xlByColumns, xlPrevious).Column)

но все равно дает последнюю ячейку на листе, потому что мне нужно указать как-то не Range("b:b"), а "заполненные ячейки столбца "b" "
...
Рейтинг: 0 / 0
27.12.2004, 11:59:26
    #32845717
Processor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
автофильтр VBA - номер следующей строки ?
m_a_r_i_n_aВсе получается, толко процедура GetLastCell определяет последнюю ячейку на листе, а мне нужно - в конкретном столбце.Она изначально для этого сделана.
Однако в начальном сообщении речь идёт о:
Код: plaintext
If Not IRange.EntireRow.Hidden Then
, т.е. о СТРОКЕ.
Если строка найдена, то, например, ячейка в столбце "В" адресуется как:
Код: plaintext
1.
Dim CellB As Range
Set CellB=GetLastCell(ActiveSheet).Offset( 1 , 0 ).EntireRow.Cells( 1 , 2 )
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / автофильтр VBA - номер следующей строки ? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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