Range类的Excel VBA Clearcontents方法失败

时间:2018-12-03 22:35:55

标签: excel vba range

下面的代码来自于我编写的第一个宏之一,因此,我相信有更好的方法可以做到这一点。该代码已经使用了多年,最近开始失败并显示“ Range Class的Clearcontents方法失败”消息。

我有2个字段,用户可以在其中输入“ X”。该代码的目的是在用户输入“ X”时清除其他单元格。非常简单明了。有什么建议吗?

这是在装有Windows 7和32位操作系统的计算机上发生的。

谢谢您的帮助........

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Row = 19 And Target.Column = 2 And Len(Trim(Cells(19, 2))) > 0 Then
        Cells(19, 2) = UCase(Cells(19, 2))
        Cells(20, 2).ClearContents
    Else
        If Target.Row = 20 And Target.Column = 2 And Len(Trim(Cells(20, 2))) > 0 Then
            Cells(20, 2) = UCase(Cells(20, 2))
            Cells(19, 2).ClearContents
        End If
    End If

End Sub

2 个答案:

答案 0 :(得分:0)

尝试将单元格(20,2).ClearContents 更改为单元格(20,2).value =“”

或者尝试使用以下工作表名称来限定对象单元格: Worksheets(“ putNameHere”)。Cells(20,2).ClearContents

代码有一些问题,但也许可以解决...

答案 1 :(得分:0)

尝试一下:

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
        If Target.Row = 19 And Target.Column = 2 And Len(Trim(Cells(19, 2))) > 0 Then
            Cells(19, 2) = UCase(Cells(19, 2))
            Cells(20, 2).ClearContents
        Else
            If Target.Row = 20 And Target.Column = 2 And Len(Trim(Cells(20, 2))) > 0 Then
                Cells(20, 2) = UCase(Cells(20, 2))
                Cells(19, 2).ClearContents
            End If
        End If
    Application.EnableEvents = True
End Sub