下面的代码来自于我编写的第一个宏之一,因此,我相信有更好的方法可以做到这一点。该代码已经使用了多年,最近开始失败并显示“ 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
答案 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