Используйте активную ячейку для извлечения данных - PullRequest
0 голосов
/ 17 февраля 2019

Мне удалось заставить мой VBA использовать активную ячейку для получения даты и номера отдела из моей таблицы.Я использую это для предварительной фильтрации.Я хотел бы помочь в сокращении моего кода, то, как я это делаю, заняло бы довольно много строк.Я попытался добавить окно с сообщением «Нет NCR», если ячейка клапана = 0. Я также хотел бы сообщение «Нажмите на ячейку в таблице», если кнопка выбрана, а активная ячейка не находится в диапазоне таблицы.

Sub select Range()

If ActiveCell.Address = "$B$7" Then
Range("O6").Value = Range("B5").Value
Range("Q6").Value = Range("A7").Value

ElseIf ActiveCell.Address = "$B$8" Then
Range("O6").Value = Range("B5").Value
Range("Q6").Value = Range("A8").Value

ElseIf ActiveCell.Address = "$B$9" Then
Range("O6").Value = Range("B5").Value
Range("Q6").Value = Range("A9").Value

End If
End Sub

Данные таблицы

Ответы [ 2 ]

0 голосов
/ 17 февраля 2019

вы можете использовать структуру Select Case для управления соответствующими делами в правильном порядке:

Sub selectRange()

    Select Case True
        Case Intersect(ActiveCell, Range("B7:M12")) Is Nothing
            MsgBox "Click on cell in table"

        Case ActiveCell.Value = 0
            MsgBox "No NCR"

        Case Else
            Range("O6") = Cells(5, ActiveCell.Column).Value
            Range("Q6") = Cells(ActiveCell.Row, "A").Value
    End Select

End Sub
0 голосов
/ 17 февраля 2019

Пересечение может определить, находится ли ActiveCell в вашей таблице.Строка и столбец ActiveCell могут содержать отдел и месяц.

Sub selectRange()

    if not intersect(activecell, range("B7:M12")) is nothing then
        Range("O6") = cells(5, activecell.column).value
        Range("Q6") = cells(activecell.row, "A").value
    else
        msgbox "not in table"
    end if

End Sub

Worksheet_SelectionChange может выполнить то же самое без кнопки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...