Задача данного участка кода проверить переменную на соответствие элементам из массива, и в случае совпадения выполнить один код, в случае если ни один из элементов не подошел выполнить другой код. Попытка использовать LBound и UBound дала ошибку синтаксиса. Похожих решений не нашел. Или так решить эту задачу нельзя? Спасибо
Код
If переменная = одно из значений массива Then
код 1
Else
код 2
End If
БМВ, код срабатывает, но всегда выполняется условие Trig=True и выполняется код 1, не смотря на то что переменная не равна val. (хотел вставить код, но в массиве элементы на кириллице, и кодировка слетает)
Dim b, sn, n, wcn As Long
Private Sub CBDelNorm_Click()
Dim lUnit, lUnitOf As String, rangeKod As rangE, vCNullN, arrUnit, varrUnit As Variant, Trig As Boolean, lColUnit As Long
sn = CLng(UserForm1.TBCol)
wcn = CLng(UserForm1.TBWidth)
Set rangeKod = Selection.Cells
arrUnit = Array("Ãêàë", "ã", "êâ.äì", "êâ.ì", "êã", "êì", "êîìïë", "êóá.ì", "êóá.ñì", _
"ìë", "ë.", "ë", "ì", "íàáîð", "ïàð", "ðóë", "ò", "103 óñë. êèðï", "òûñ.øò; 1000øò", "óïàê", "øò")
For Each vCNullN In rangeKod 'перебор строк в диапазоне
lColUnit = ActiveCell.Column + 4
' MsgBox lColUnit
lUnit = vCNullN.Offset(0, lColUnit).Value
' MsgBox lUnit
For Each varrUnit In arrUnit 'перебор по массиву
If lUnit = varrUnit Then
Trig = True
Exit For
End If
Next
MsgBox Trig & lUnit & varrUnit
If Trig = True Then
lColUnit = lColUnit + 1
For n = 1 To sn
Do While Columns(lColUnit).Hidden = True
lColUnit = lColUnit + 1
Loop
Next n
ElseIf Trig = False Then 'если значение не из массива
MsgBox "false"
End If
Next vCNullN
End Sub
Часть переменных объявлена в области проекта. Всегда получаю на выходе MsgBox Trig( всегда true) & lUnit(содержимое ячейки) & varrUnit(элемент массива) независимо от того что лежит в ячейке