复制和;粘贴两个工作簿

时间:2014-01-30 21:59:53

标签: excel vba excel-vba

夜。

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

Two Main reasons why .Select/.Activate/Selection/Activecell/Activesheet/Activeworkbook etc... should be avoided ”作者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

我对如何将其合并到一个工作脚本中没有任何线索。

由于 标记

2 个答案:

答案 0 :(得分:1)

如果您要复制特定工作表,请执行以下操作:

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

答案 1 :(得分:0)

@Tim Williams

感谢您的帮助。最终达到了这个目的。

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