【问题标题】:Form Control Checkbox to Copy and Paste Text from a Different Sheet用于从不同工作表复制和粘贴文本的表单控件复选框
【发布时间】:2015-04-28 15:04:26
【问题描述】:

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

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

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

【问题讨论】:

  • 请将Sub ...() 定义添加到您的代码中,以便我们知道这是什么类型的过程(例如,它与哪个事件和哪个对象相关等)
  • 我已经添加了子
  • 第一个问题:您不能像这样引用表单控件...用 ActiveX 控件替换复选框...另请参阅stackoverflow.com/questions/6932084/…
  • 我已将复选框替换为 ActiveX 控件框,并且在“Range("B1").Select' 行上出现运行时错误“Range 类的选择方法失败”。跨度>
  • 对不起,我无论如何都禁食了......在 2010 年这似乎有效......检查......

标签: excel vba checkbox


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多