【发布时间】:2022-12-05 20:42:03
【问题描述】:
我有下面的宏。当它运行时,它基本上将“主表”上的范围复制并粘贴到工作表上需要的其他地方:
Sub Macro2()
With Worksheets("Master Sheet")
Range("CC25:CE33").Select
Selection.Copy
Range("CC44").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Range("CC21").Select
Selection.Copy
Range("CC40").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Range("CC6:CE14").Select
Selection.Copy
Range("CC25").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Range("CC2").Select
Selection.Copy
Range("CC21").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
End With
End Sub
宏按预期运行。我想将它分配给不同工作表上的按钮(“Summary_QC”)。当我这样做时,宏会运行但由于某种原因它使用“Summary_QC”工作表而不是“主工作表”上的范围,尽管我说明了 With Worksheets(“主工作表”)。
任何想法我的问题可能是什么,以及可能的解决方案?
【问题讨论】:
-
您有一个
With语句,但没有在您的Range对象上使用它....使用.Range使其使用With而不是ActiveSheet -
另外,考虑使用其他方式复制数据。选择/复制/粘贴速度慢且容易出错,请参阅stackoverflow.com/a/10717999/1490783 了解替代方案。