Узнайте, находится ли выбранная ячейка в диапазоне данных - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть макрос, настроенный для выполнения фрагмента кода в событии onclick, и я пытаюсь определить, выбрали ли они значение чисел c в диапазоне таблицы. Ниже приведен пример моей таблицы, и я пытаюсь выяснить, выбрали ли они число> 0 во втором столбце. Я знаю, как ссылаться на второй столбец указанной таблицы c, например:

ListObjects("Table1").ListColumns(2).DataBodyRange

, но я не уверен, как определить, находится ли выбранная ячейка в этом диапазоне. Какие-либо предложения? Большое спасибо за вашу помощь!

enter image description here

Ответы [ 2 ]

1 голос
/ 19 февраля 2020

Если в вашей таблице есть фильтры, вам нужно проверить только видимые ячейки

Попробуйте этот код:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Application.EnableEvents = False

    Dim r As Range
    Set r = ListObjects(1).ListColumns(2).DataBodyRange.SpecialCells(xlCellTypeVisible)

    Dim hit As Boolean
    hit = Not Application.Intersect(r, Target) Is Nothing

    If hit Then
        Range("A1").Value = "Inside"
    Else
        Range("A1").Value = "Outside"
    End If

    Application.EnableEvents = True

End Sub

В противном случае для всех видимых и невидимых ячеек используйте

Set r = ListObjects(1).DataBodyRange
1 голос
/ 19 февраля 2020

Использование Intersect.

Dim rangeToCheck as Range
Set rangeToCheck = Intersect(ActiveCell, ListObjects("Table1").ListColumns(2).DataBodyRange)

If Not rangeToCheck Is Nothing Then
    If IsNumeric(ActiveCell.Value) Then 
        If ActiveCell.Value > 0 Then
            ' do the suff
        End If
    End If
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...