Страницы: 1
RSS
Пользовательская функция VBA "Определения скрыта ли строка", базовый VBA
 
Всем привет!

-Друзья прошу помочь разобраться с созданием пользовательской функции, которая поможет мне определить какая строка таблицы скрыта;
-В Файле-примере сильно упрощенная ситуация, мне нужно определять какая строка скрыта в таблице около 1000 строк, строки которой будут скрываться в зависимости от различных настроек фильтров;
-Для решения этой задачи хочу сделать пользовательскую функцию, которая позволит определять для каждой конкретной строки скрыта они или нет, что затем использовать в операторе СУММЕСЛИМН, как второе условия при суммирование;
-Но код не работает, как должен, из-за того, что не понимаю синтаксис VBA, вот код:
Код
Function определятель(ByVal rCell As Range) As String
    If Rows(rCell).Height = False Then
        определятель = 1
    Else
        определятель = 2
    End If
End Function
-Так же хотел идти, через Hidden, но возникли сложности с пониманием работы оператора;
Изменено: Kanitele - 01.12.2019 21:47:23
 
Kanitele, может это поможет
http://www.cyberforum.ru/vba/thread676328.html
https://www.extendoffice.com/ru/documents/excel/5215-excel-check-if-row-is-hidden.html
Изменено: Mershik - 01.12.2019 22:01:21
Не бойтесь совершенства. Вам его не достичь.
 
Код
If rCell.EntireRow.Hidden = False Then
 
если вы не видите строку чтобы щелкнув мышью по  любой ячейке в ней передать ее в качестве параметра в функцию определитель - значит строка скрыта!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Код
Function определятель_1(rrr As Range) As Integer
определятель_1 = CInt(Rows(rrr.Row).EntireRow.Hidden) + 2
End Function
 
Цитата
vikttur написал:
1If rCell.EntireRow.Hidden = False Then
Спасибо
 
А бывает что не скрыта, но не видна, потому что высота минимальная...
 
Цитата
Kanitele написал:
пользовательской функции, которая поможет мне определить какая строка таблицы скрыта
Код
Function RowHidden(rowNumber As Long) As Boolean
    RowHidden = Rows(rowNuumber).Hidden
End Function

Все остальное - от лукавого.
Изменено: RAN - 25.06.2020 20:53:47
Страницы: 1
Наверх