VBA Проверить, является ли значение ячейки частью массива - PullRequest
0 голосов
/ 29 января 2020

Может кто-нибудь помочь с тем, как проверить, является ли значение ячейки частью списка? Я пробовал несколько вещей, но ничего не получилось: (

Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("E4:E104")) Is Nothing Or Target.Cells.Count > 1 Then Exit Sub

Dim FI As Variant
FI = Sheets(1).Range("A1:A5").Value


With Target.Offset(0, -4)
.Value = Date
.NumberFormat = "dd.mm.yy"
End With

With Target.Offset(0, 5)
.FormulaR1C1 = "=R[-1]C+RC[-3]-RC[-2]"
End With

If Target = FI Then
    Target.Offset(0, 2).Locked = False
    Target.Offset(0, 3).Locked = True
ElseIf Target <> FI Then
    Target.Offset(0, 2).Locked = True
    Target.Offset(0, 3).Locked = False
End If

что мне нужно добавить, чтобы увидеть, равно ли значение f ячейки одному из значений ячеек от A1 до A5? Спасибо

1 Ответ

0 голосов
/ 29 января 2020

Я использую эту функцию ниже, чтобы проверить, находится ли значение в массиве:

Function CheckInArray(SearchVal As Variant, TestArray As Variant) As Boolean

    Dim icount As Long

    For icount = LBound(TestArray) To UBound(TestArray)

        If TestArray(icount, 1) = SearchVal Then

            CheckInArray = True
            Exit Function

        End If

    Next icount

    CheckInArray = False

End Function

Функция возвращает True, если ваш SearchVal находится в массиве, False, если нет «т. Вы можете добавить строку как:

If CheckInArray(Target.value, FI) then
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...