用于从不同 Sheet 复制和粘贴文本的表单控件复选框
Form Control Checkbox to Copy and Paste Text from a Different Sheet
我正在寻找一种方法,可以在勾选表单控件复选框时将文本从一个 sheet 复制并粘贴到另一个,并在取消选中时将其删除。目前我写的宏什么都不做,它没有出现任何错误它只是不起作用。我到目前为止是:
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
如有任何帮助,我们将不胜感激。
要解决您的运行时错误,请将您的代码更改为
ActiveSheet.Range("B1").Select
并对目标范围 C1 执行相同操作
然而,更优雅的方法是通过使用 VBA 而不是 "macro recording" 一起摆脱 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
我正在寻找一种方法,可以在勾选表单控件复选框时将文本从一个 sheet 复制并粘贴到另一个,并在取消选中时将其删除。目前我写的宏什么都不做,它没有出现任何错误它只是不起作用。我到目前为止是:
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
如有任何帮助,我们将不胜感激。
要解决您的运行时错误,请将您的代码更改为
ActiveSheet.Range("B1").Select
并对目标范围 C1 执行相同操作
然而,更优雅的方法是通过使用 VBA 而不是 "macro recording" 一起摆脱 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