我正在寻找一种方法,当我勾选一个表单控件复选框时,将文本从一个工作表复制并粘贴到另一个工作表,并在取消选中时将其删除。目前我编写的宏没有做任何事情,它没有提出任何错误它只是不起作用。到目前为止我所拥有的是:
Sub CheckBox3_Click()
Application.ScreenUpdating = False
If CheckBox3 = True Then
Sheets("Data Sheet").Activate
Range("B1").Select
Selection.Copy
Sheets("Sheet1").Select
Range("C1").Select
ActiveSheet.Paste
Application.ScreenUpdating = True
End If
If CheckBox3 = False Then
ActiveSheet.Range("C1").Select
Selection.Delete
End If
End Sub
任何帮助都将不胜感激,谢谢。
答案 0 :(得分:1)
要克服运行时错误,请将代码更改为
ActiveSheet.Range("B1").Select
并对目标范围C1
执行相同操作然而,更优雅的方法是通过使用VBA而不是"宏录制"来消除Select
和Activate
。 ...使用Range对象,这将简化您的代码,避免凌乱的屏幕跳转等...
Private Sub CheckBox1_Click()
Dim SrcRange As Range, TrgRange As Range
Set SrcRange = Worksheets("Data Sheet").[B1]
Set TrgRange = Worksheets("Sheet1").[C1]
If CheckBox1 Then
TrgRange = SrcRange
Else
TrgRange = ""
End If
End Sub