Макрос запуска списка проверки данных из VBA - PullRequest
0 голосов
/ 25 октября 2018

Я пытаюсь запустить макрос (для теста просто запросить окно сообщения) из списка проверки данных, который создается каждый раз, когда я запускаю макрос, который создает новую строку.Новая строка создается в строке 6, а список проверки данных всегда находится в F6.Когда я добавляю новую строку, это изменится и переместит старую.

Я хочу запустить новый макрос, когда какой-либо из списков проверки данных изменяется в столбце "F".

Прямо сейчас у меня есть этот код, но он продолжает запрашивать

"Ошибка времени выполнения '13': несоответствие типов"

Мой модуль, создающий список проверки, выглядит следующим образом:

With Range("F6").Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
    Operator:=xlBetween, Formula1:="High,Medium,Low"
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = ""
    .ErrorTitle = ""
    .InputMessage = ""
    .ErrorMessage = ""
    .ShowInput = True
    .ShowError = True
End With

И в листе 1 я могу изменить следующий код:

Sub Worksheet_Change(ByVal Target As Range)

Dim d As Range
Set d = Application.Intersect(Target.Cells(1), Me.Range("F5:F1000"))
    If Not Range("F5:F1000") Is Nothing Then
        Select Case Columns(2)
            Case "High": MsgBox ("Test")
            Case "Medium": MsgBox ("Test")
            Case "Low": MsgBox ("Test")
        End Select
        Else
                    'do nothing
    End If

Может кто-нибудь определить ошибку?

Снимок экрана

-CP

1 Ответ

0 голосов
/ 25 октября 2018

может быть, вы после этого:

Sub Worksheet_Change(ByVal Target As Range)
    Dim d As Range

    Set d = Application.Intersect(Target.Cells(1), Range("F5:F1000")) 
    If Not d Is Nothing Then ' <<---check if set range is nothing
        Select Case Target.Value2 ' <<-- check changed cell (i.e. 'Target') value
            Case "High": MsgBox "High" & " in " & Target.Address
            Case "Medium": MsgBox "Medium" & " in " & Target.Address
            Case "Low": MsgBox "Low" & " in " & Target.Address
        End Select
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...