Требуется переменная вместо "или" - PullRequest
0 голосов
/ 27 января 2019

Simple Hide Row не работает при наличии нескольких опций

Я попытался установить переменную для диапазона и получил то же несоответствие

If Range("J178") = "Credit" Or "Debit" Or "Both" Then
    Rows("180").Hidden = False
Else
    Rows("180").Hidden = True
End If

Я ожидал, что код будет запущен или нет; не Run time 13 type mismatch я получаю.

Ответы [ 3 ]

0 голосов
/ 27 января 2019

... Вариант 5 (из @ user10970498)

Обойтись без конструкции If-Then-Else-EndIf:

Rows("180").Hidden = (Range("J178") = "Credit" Or Range("J178") = "Debit" Or Range("J178") = "Both")

или

Rows("180").Hidden = IsNumeric(application.Match(Range("J178"), Array("Credit","Debit", "Both"), 0))

Это работает, потому что свойство Hidden является Boolean.

0 голосов
/ 27 января 2019

Немного более короткая альтернатива с использованием Evaluate:

Rows("180").Hidden = Not [or(J178 = "Credit", J178 = "Debit", J178 = "Both")]
0 голосов
/ 27 января 2019

Вариант 1 - выписать каждое условие от руки (с учетом регистра)

If Range("J178") = "Credit" Or Range("J178") = "Debit" Or Range("J178") = "Both" Then
    Rows("180").Hidden = False
Else
    Rows("180").Hidden = True
End If

Вариант 2. Проверка массива с помощью соответствия таблицы (без учета регистра)

If IsNumeric(application.Match(Range("J178"), Array("Credit","Debit", "Both"), 0)) Then
    Rows("180").Hidden = False
Else
    Rows("180").Hidden = True
End If

Вариант 3 - использовать метод выбора регистра (с учетом регистра)

Select Case Range("J178"),Value
    Case "Credit", "Debit", "Both"
        Rows("180").Hidden = False
    Case Else
        Rows("180").Hidden = True
End Select

Вариант 4 - Использовать модифицированный метод выбора регистра (без учета регистра)

Select Case lcase(Range("J178"),Value)
    Case "credit", "debit", "both"
        Rows("180").Hidden = False
    Case Else
        Rows("180").Hidden = True
End Select
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...