Как избежать ошибки несоответствия типов при обращении к целевому значению диапазона? - PullRequest
1 голос
/ 03 мая 2019

Я очень новичок в VBA, и я был бы признателен за помощь с кодом ниже.

Отладчик останавливается на If target.Value <> "" Then (первая строка нижнего подпрограммы), и я подозреваю, что это связано с тем,что целью является диапазон с потенциалом для нескольких целевых значений.Правильно ли это мышление?Если да, то как мне решить эту проблему.

Примечание. 'FILLABLE_TOP_REG', 'CHK_PROD' и 'FILLABLE_BOT' - это именованные диапазоны на листе 1 моей рабочей книги.

Спасибо!

Если target.cells.count = 1 And target.value <> "" ... Для каждой ячейки в цели ...

Public Sub Worksheet_SelectionChange(ByVal target As Range)

Dim TopREG_Range As Range

'PROMPTS USER TO CONFIRM CHANGE/DELETE
If Not Intersect(target, Range("FILLABLE_TOP_REG")) Is Nothing Then
    Call warning_msg(Range("H7"), target)
End If
If Not Intersect(target, Range("CHK_PROD")) Is Nothing Then
    Call warning_msg(Range("H7"), target)
End If
If Not Intersect(target, Range("FILLABLE_BOT")) Is Nothing Then
    Call warning_msg(Range("H" & target.Row), target)
End If
End Sub

Public Sub warning_msg(redirect As Range, target As Range)

If target.Value <> "" Then
            Dim Msg As String
                Msg = "Are you sure you want to delete and/or modify the following cell?" & vbCrLf & vbCrLf & Selection.Address & "= " & Selection.Text
            Dim Ans As VbMsgBoxResult
                Ans = MsgBox(Msg, vbYesNo + vbCritical)
                Select Case Ans
            Case vbYes: Selection.ClearContents
            Case vbNo: redirect.Select
    End Select
  End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...