Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 当我删除或清除单元格的内容时,会收到调试消息_Vba_Excel - Fatal编程技术网

Vba 当我删除或清除单元格的内容时,会收到调试消息

Vba 当我删除或清除单元格的内容时,会收到调试消息,vba,excel,Vba,Excel,我有一个VBA代码来大写大部分工作表,但当我删除或清除内容时,我会收到调试消息 任何帮助都将不胜感激 Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Not Intersect(Target, Range("A:Z")) Is Nothing Then Target.Value = UCase(Application.Substitute(Target.Value, "

我有一个VBA代码来大写大部分工作表,但当我删除或清除内容时,我会收到调试消息

任何帮助都将不胜感激

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Range("A:Z")) Is Nothing Then
Target.Value = UCase(Application.Substitute(Target.Value, " ", ""))
End If
Application.EnableEvents = True
End Sub

如果删除/更改/添加多个单元格,则目标是多个单元格,并且不能像现在这样将值设为大写。循环遍历目标列和A:Z列的交点,并使每个列都大写

Private Sub Worksheet_Change(ByVal Target As Range)

    Application.EnableEvents = False
    If Not Intersect(Target, Range("A:Z")) Is Nothing Then
        dim rng as range
        for each rng in Intersect(Target, Range("A:Z"))
            rng.Value = UCase(Replace(rng.Value, chr(32), vbnullstring))
        next rng
    End If
    Application.EnableEvents = True

End Sub

你得到了什么信息?它发生在哪一行?如果删除/更改/添加了多个单元格,则目标是多个单元格,并且不能像现在这样将值设为大写。循环遍历Target和A:Z列的交叉点,并使每个列都大写。它是否发生在Z之外,因为如果是,则您正在尝试替换一个已删除的值。
Target.value
将是一个数组,如果
Target.cells.count>1
则为其添加一个检查,并且检查目标仍然存在。