表单控件复选框复制和粘贴不同工作表中的文本

时间:2015-02-26 09:45:41

标签: excel vba checkbox

我正在寻找一种方法,当我勾选一个表单控件复选框时,将文本从一个工作表复制并粘贴到另一个工作表,并在取消选中时将其删除。目前我编写的宏没有做任何事情,它没有提出任何错误它只是不起作用。到目前为止我所拥有的是:

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

任何帮助都将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:1)

要克服运行时错误,请将代码更改为

ActiveSheet.Range("B1").Select

并对目标范围C1

执行相同操作

然而,更优雅的方法是通过使用VBA而不是"宏录制"来消除SelectActivate。 ...使用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