点击Command Button实现多工作表同范围数据依次复制的VBA代码求助
VBA 按钮执行顺序复制代码
以下是可直接填入Private Sub CommandButton1_Click()事件中的代码,分为两种适用场景:
场景1:仅需复制单元格值(执行速度最快,不占用剪贴板)
' 关闭屏幕更新提升运行效率 Application.ScreenUpdating = False ' 1. Data3的A1:J500数据复制到Data4同范围 Worksheets("Data4").Range("A1:J500").Value = Worksheets("Data3").Range("A1:J500").Value ' 2. Data2的A1:J500数据复制到Data3同范围 Worksheets("Data3").Range("A1:J500").Value = Worksheets("Data2").Range("A1:J500").Value ' 3. Data1的A1:J500数据复制到Data2同范围 Worksheets("Data2").Range("A1:J500").Value = Worksheets("Data1").Range("A1:J500").Value ' 4. Data的A1:J500数据复制到Data1同范围 Worksheets("Data1").Range("A1:J500").Value = Worksheets("Data").Range("A1:J500").Value ' 恢复屏幕更新 Application.ScreenUpdating = True ' 执行完成提示,不需要可删除 MsgBox "所有数据复制操作已完成", vbInformation
场景2:需要保留单元格格式、公式、数据验证等属性
' 关闭屏幕更新提升运行效率 Application.ScreenUpdating = False ' 1. Data3的A1:J500复制到Data4同范围 Worksheets("Data3").Range("A1:J500").Copy Destination:=Worksheets("Data4").Range("A1:J500") ' 2. Data2的A1:J500复制到Data3同范围 Worksheets("Data2").Range("A1:J500").Copy Destination:=Worksheets("Data3").Range("A1:J500") ' 3. Data1的A1:J500复制到Data2同范围 Worksheets("Data1").Range("A1:J500").Copy Destination:=Worksheets("Data2").Range("A1:J500") ' 4. Data的A1:J500复制到Data1同范围 Worksheets("Data").Range("A1:J500").Copy Destination:=Worksheets("Data1").Range("A1:J500") ' 清除剪贴板缓存 Application.CutCopyMode = False ' 恢复屏幕更新 Application.ScreenUpdating = True ' 执行完成提示,不需要可删除 MsgBox "所有数据复制操作已完成", vbInformation
注意:代码执行顺序严格按照要求的从后往前覆盖的逻辑,不会出现数据被提前覆盖丢失的问题。
内容的提问来源于stack exchange,提问作者ASMRH
相关产品推荐
相关产品推荐

