Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Цикл по видимым ячейкам сверху вниз - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Цикл по видимым ячейкам сверху вниз
Bregra Дата: Пятница, 01.09.2017, 17:31 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Добрый день,

Подкажите, пжл, как в vba написать цикл, который будет проходить по видимым ячейкам снизу вверх. То есть фильтром выделяем нужный диапазон и по нему запускается цикл. Что то наподобие:
[vba]
Код

For each C in Array
[/vba]
Но только чтобы цикл был с последней ячейки до первой. Спасибо.


Сообщение отредактировал Bregra - Пятница, 01.09.2017, 17:33
 
Ответить
СообщениеДобрый день,

Подкажите, пжл, как в vba написать цикл, который будет проходить по видимым ячейкам снизу вверх. То есть фильтром выделяем нужный диапазон и по нему запускается цикл. Что то наподобие:
[vba]
Код

For each C in Array
[/vba]
Но только чтобы цикл был с последней ячейки до первой. Спасибо.

Автор - Bregra
Дата добавления - 01.09.2017 в 17:31
nilem Дата: Пятница, 01.09.2017, 17:47 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Bregra, привет
может как-то так
[vba]
Код
Sub ttt()
Dim i&
With ActiveSheet.AutoFilter.Range
    For i = .Rows.Count To 1 Step -1
        If .Cells(i, 1).EntireRow.Hidden = False Then MsgBox .Cells(i, 1).Value
    Next i
End With
End Sub
[/vba]


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеBregra, привет
может как-то так
[vba]
Код
Sub ttt()
Dim i&
With ActiveSheet.AutoFilter.Range
    For i = .Rows.Count To 1 Step -1
        If .Cells(i, 1).EntireRow.Hidden = False Then MsgBox .Cells(i, 1).Value
    Next i
End With
End Sub
[/vba]

Автор - nilem
Дата добавления - 01.09.2017 в 17:47
Bregra Дата: Пятница, 01.09.2017, 18:02 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
У меня задача стоит удалить строчки по условию из фильтрованного диапазона. Ваш метод не помогает, он удаляет все строки, а не только из выделенного диапазона.
 
Ответить
СообщениеУ меня задача стоит удалить строчки по условию из фильтрованного диапазона. Ваш метод не помогает, он удаляет все строки, а не только из выделенного диапазона.

Автор - Bregra
Дата добавления - 01.09.2017 в 18:02
Bregra Дата: Пятница, 01.09.2017, 18:05 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
А нет, ваш метод работает, только придется перебирать весь диапазон, а это очень долго. Можно ли работать только с выделенным диапазоном?Спасибо.
 
Ответить
СообщениеА нет, ваш метод работает, только придется перебирать весь диапазон, а это очень долго. Можно ли работать только с выделенным диапазоном?Спасибо.

Автор - Bregra
Дата добавления - 01.09.2017 в 18:05
nilem Дата: Пятница, 01.09.2017, 18:23 | Сообщение № 5
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Можно ли работать только с выделенным диапазоном?

Имеете в виду выделенный диапазон в отфильтрованном диапазоне?


Яндекс.Деньги 4100159601573
 
Ответить
Сообщение
Можно ли работать только с выделенным диапазоном?

Имеете в виду выделенный диапазон в отфильтрованном диапазоне?

Автор - nilem
Дата добавления - 01.09.2017 в 18:23
Bregra Дата: Пятница, 01.09.2017, 18:37 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Имеется в виду сам фильтрованный диапазон. Чтобы строки, которые спрятаны, циклом не затрагивались
 
Ответить
СообщениеИмеется в виду сам фильтрованный диапазон. Чтобы строки, которые спрятаны, циклом не затрагивались

Автор - Bregra
Дата добавления - 01.09.2017 в 18:37
RAN Дата: Пятница, 01.09.2017, 18:39 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
А без цикла котируется?
[vba]
Код
Sub del()
    With ActiveSheet.AutoFilter.Range
        .Offset(1).EntireRow.Select
'        .Offset(1).SpecialCells(xlVisible).EntireRow.Select ' костыль для 2007
        Selection.Delete
    End With
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеА без цикла котируется?
[vba]
Код
Sub del()
    With ActiveSheet.AutoFilter.Range
        .Offset(1).EntireRow.Select
'        .Offset(1).SpecialCells(xlVisible).EntireRow.Select ' костыль для 2007
        Selection.Delete
    End With
End Sub
[/vba]

Автор - RAN
Дата добавления - 01.09.2017 в 18:39
Bregra Дата: Суббота, 02.09.2017, 06:47 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Задача в фильтре по условию удалять строки, т. е. не все отфильтрованные, а только те, которые подходят по условию. Первое что делается это по одному условию фильтруются данные, а потом в этом диапозоне по второму условию удаляются строки.
 
Ответить
СообщениеЗадача в фильтре по условию удалять строки, т. е. не все отфильтрованные, а только те, которые подходят по условию. Первое что делается это по одному условию фильтруются данные, а потом в этом диапозоне по второму условию удаляются строки.

Автор - Bregra
Дата добавления - 02.09.2017 в 06:47
RAN Дата: Суббота, 02.09.2017, 08:11 | Сообщение № 9
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
а потом в этом диапозоне по второму условию фильтруются данные и удаляются строки


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
а потом в этом диапозоне по второму условию фильтруются данные и удаляются строки

Автор - RAN
Дата добавления - 02.09.2017 в 08:11
InExSu Дата: Воскресенье, 03.09.2017, 14:02 | Сообщение № 10
Группа: Друзья
Ранг: Ветеран
Сообщений: 650
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
перебирать весь диапазон, а это очень долго. Можно ли работать только с выделенным диапазоном?

Не нашёл Вашего файла.
Вставьте в Ваш код, после фильтрации:
[vba]
Код
Cells.Find(What:="iphone", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).EntireRow.Delete Shift:=xlUp
Range("a1").Select 'чтобы искать сначала
[/vba]


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
 
Ответить
Сообщение
перебирать весь диапазон, а это очень долго. Можно ли работать только с выделенным диапазоном?

Не нашёл Вашего файла.
Вставьте в Ваш код, после фильтрации:
[vba]
Код
Cells.Find(What:="iphone", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).EntireRow.Delete Shift:=xlUp
Range("a1").Select 'чтобы искать сначала
[/vba]

Автор - InExSu
Дата добавления - 03.09.2017 в 14:02
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2026 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!