【发布时间】:2021-10-22 23:16:46
【问题描述】:
我在这方面不是很先进,但是我希望获得一些方向。我目前正在运行以下 VBA:
Private Sub CommandButton1_Click()
If (CheckBox1.Value = True) Then
ActiveSheet.Range("B13:E18").Copy
End If
If (CheckBox2.Value = True) Then
ActiveSheet.Range("B20:E25").Copy
End If
If (CheckBox3.Value = True) Then
ActiveSheet.Range("B27:E32").Copy
End If
If (CheckBox4.Value = True) Then
ActiveSheet.Range("B34:E39").Copy
End If
'copy the chunk above for more check boxes
End Sub
但是,它最终只会复制最后一个选中的复选框,而不是一次复制多个单元格。为了每个复选框仅复制选定的单元格并将它们复制到同一工作簿中的另一个工作表,我缺少什么?
【问题讨论】:
-
如果意图是复制 B13:E18 和 B20:E25 等,您需要使用 Union 来构造一个包含您想要的每个目标范围的范围。然后在“联合”范围内进行复制。
-
此代码是在用户窗体上还是在工作表代码模块中?
-
@Tim Williams:他们说它基本上可以工作,所以必须在用户表单中,不是吗?
-
可能是工作表...
-
@Tim Williams:好的。必须因 excel 版本而异。我无法将旧版本 (2010) 中的代码作为工作表中的代码运行。它仅适用于用户表单。为了我的启蒙,我将在适当的版本中进行测试。你能告诉我它适用于什么版本吗?
标签: excel vba copy cell worksheet