复制和粘贴两个工作簿

晚间。

我正在尝试清理VBA脚本中的代码,并阅读:

select/。激活/select/ Activecell / Activesheet / Activeworkbook等应该避免的两个主要原因 ”由Siddharth Rout

我用下面的脚本打破了所有的规则。

我试图达到的是由脚本完成的。 我在转换脚本时遇到的困难是,工作簿名称“CMF Export.xlxs”根据发送的业务分支而变化。

'PARTNO & FULLDESC copy paste Windows("HIDEDISPLAY.xlsx").Activate Range("B:B,I:I").Select Range("I1").Activate Selection.Copy Windows("CMF Export.xlsx").Activate Range("C1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False 

我已经使用下面的脚本获取我想要复制到的工作簿的名称。

 Function GetBook() As String GetBook = ActiveWorkbook.Name End Function 

我只是没有任何线索,我可以如何将其合并成一个工作脚本。

谢谢马克

如果您想要从/复制特定工作表:

 Workbooks("HIDEDISPLAY.xlsx").Sheets("Sheet1").Range("B:B,I:I").Copy 'copy to named workbook... Workbooks("CMF Export.xlsx").Sheets("Sheet2").Range("C1").PasteSpecial _ Paste:=xlPasteValues, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False 'or copy to active workbook... 'If copying to the workbook with the macro, use "ThisWorkbook" ActiveWorkbook.Sheets("Sheet2").Range("C1").PasteSpecial _ Paste:=xlPasteValues, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False 

@蒂姆·威廉姆斯

谢谢您的帮助。 事后得到这个工作。

 Workbooks("CMF Export.xlsx").Sheets("Sheet1").Range("M:M").Copy sFile = ActiveWorkbook.Name 'MsgBox "" & ActiveWorkbook.Name Set wbSource = ActiveWorkbook ActiveWorkbook.Sheets("Sheet1").Range("BB1").PasteSpecial _ Paste:=xlPasteValues, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False