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

Вход

Регистрация

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

 

= Мир MS Excel/Как взять значение в отфильтрованном списке без шапки - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Как взять значение в отфильтрованном списке без шапки
SkyWay Дата: Четверг, 12.02.2015, 20:03 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Есть вот такой код поиска максимального значения в столбце на строке. Как сделать чтобы значение бралось не с шапки, а со следующей строки, где есть значения?

[vba]
Код
mx = ActiveSheet.AutoFilter.Range.Columns(7).SpecialCells(xlCellTypeVisible).Cells(1)
   For Each x In ActiveSheet.AutoFilter.Range.Columns(7).SpecialCells(xlCellTypeVisible)
     If x.Value > mx Then mx = x.Value
   Next
   MaxInFilter = mx
[/vba]

В VBA я новичок. Поискал, и насколько понял надо использовать свойство Offset(1), но что то куда не вставлял его, никак не получалось, как надо(
 
Ответить
СообщениеЕсть вот такой код поиска максимального значения в столбце на строке. Как сделать чтобы значение бралось не с шапки, а со следующей строки, где есть значения?

[vba]
Код
mx = ActiveSheet.AutoFilter.Range.Columns(7).SpecialCells(xlCellTypeVisible).Cells(1)
   For Each x In ActiveSheet.AutoFilter.Range.Columns(7).SpecialCells(xlCellTypeVisible)
     If x.Value > mx Then mx = x.Value
   Next
   MaxInFilter = mx
[/vba]

В VBA я новичок. Поискал, и насколько понял надо использовать свойство Offset(1), но что то куда не вставлял его, никак не получалось, как надо(

Автор - SkyWay
Дата добавления - 12.02.2015 в 20:03
nilem Дата: Четверг, 12.02.2015, 22:13 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
вот так попробуйте:
[vba]
Код
With ActiveSheet.AutoFilter.Range.Columns(7).Offset(1).SpecialCells(xlCellTypeVisible)
     mx = .Cells(1).Value
     For Each x In .Cells
         If x.Value > mx Then mx = x.Value
     Next
     MaxInFilter = mx
End With
[/vba]
или сразу так
[vba]
Код
MaxInFilter = WorksheetFunction.Max(ActiveSheet.AutoFilter.Range.Columns(7).Offset(1).SpecialCells(xlCellTypeVisible))
[/vba]


Яндекс.Деньги 4100159601573
 
Ответить
Сообщениевот так попробуйте:
[vba]
Код
With ActiveSheet.AutoFilter.Range.Columns(7).Offset(1).SpecialCells(xlCellTypeVisible)
     mx = .Cells(1).Value
     For Each x In .Cells
         If x.Value > mx Then mx = x.Value
     Next
     MaxInFilter = mx
End With
[/vba]
или сразу так
[vba]
Код
MaxInFilter = WorksheetFunction.Max(ActiveSheet.AutoFilter.Range.Columns(7).Offset(1).SpecialCells(xlCellTypeVisible))
[/vba]

Автор - nilem
Дата добавления - 12.02.2015 в 22:13
_Boroda_ Дата: Четверг, 12.02.2015, 23:05 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16957
Репутация: 6631 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Или так еще можно
[vba]
Код
MaxInFilter = WorksheetFunction.Subtotal(4, ActiveSheet.AutoFilter.Range.Columns(7).Offset(1))
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеИли так еще можно
[vba]
Код
MaxInFilter = WorksheetFunction.Subtotal(4, ActiveSheet.AutoFilter.Range.Columns(7).Offset(1))
[/vba]

Автор - _Boroda_
Дата добавления - 12.02.2015 в 23:05
  • Страница 1 из 1
  • 1
Поиск:

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