Я очень новичок в 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