Excel 用交集法解决问题

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 "*[

我有一段用于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 "*[а-я]*" 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
运算符(更多详细信息请参见我的原始注释)。