我是vba的新手,在删除工作簿中的多个单元格时遇到Type mismatch
错误,并且在此处的If
语句中失败:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "Multiple Choice - Multiple Answer" Then
MsgBox "You selected MC-MA"
End If
End Sub
我想知道是否有一种方法可以检查用户是否正在删除单元格的内容,并且在这种情况下不运行此if语句?
我尝试了If Trim(Target.Value) <> Empty
,但是它引发了我猜错的错误,因为我试图对不存在的值运行If语句。
我希望If Trim(Target.Value) <> Empty
使其跳过上面的代码,但会引发Type mismatch
错误。
答案 0 :(得分:1)
尝试像这样的SelectionChange
事件:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cel As Range
For Each cel In Target
If cel.Value = "Multiple Choice - Multiple Answer" Then
MsgBox "You selected MC-MA"
End If
Next
End Sub
Change
事件中,即使您尝试一一检查单元格,也不会发现具有该匹配项的单元格,因为 代码在执行删除操作后运行 。因此,到涉及If语句时,该单元格已经为空。答案 1 :(得分:0)
我想出了办法。如果我只是执行一个检查if Target.Count = 1
的If语句,然后运行代码即可!