夜。
我正在尝试在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
我对如何将其合并到一个工作脚本中没有任何线索。
由于 标记
答案 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