Excel 用交集法解决问题
我有一段用于Excel宏的VBA代码,它阻止用户以俄语输入文本,它可以工作,但是,它在复制/粘贴多个单元格时抛出一个错误。我认为我必须限制Intersect的应用范围,但不确定什么是正确的方法Excel 用交集法解决问题,excel,vba,Excel,Vba,我有一段用于Excel宏的VBA代码,它阻止用户以俄语输入文本,它可以工作,但是,它在复制/粘贴多个单元格时抛出一个错误。我认为我必须限制Intersect的应用范围,但不确定什么是正确的方法 Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target.Cells, [A1:H1000]) Is Nothing Then Exit Sub If LCase(Target.Cells) Like "*[
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target.Cells, [A1:H1000]) Is Nothing Then Exit Sub
If LCase(Target.Cells) Like "*[а-я]*" Then
With Application
.EnableEvents = False: .Undo: .EnableEvents = True
MsgBox "Please use latin letters only"
End With
End If
End Sub
否-问题是
LCase(Target.Cells)像“*[а-а]*”然后。如果Target
是多个单元格,则比较将失败。您必须迭代目标中的每个单元格。注意-Target.Cells
中的Cells
是冗余的。哪一行抛出了什么错误?错误说明了什么?哪一行抛出它?您可以将Intersect(Target.Cells[A1:H1000])
替换为Intersect(Target[A1:H1000])
Target
已经是一个范围对象。复制/粘贴多个单元格时,Target
是一个多单元格范围。不能在多单元格范围内调用LCase
,也不能在多单元格范围内使用Like
运算符(更多详细信息请参见我的原始注释)。