VBA从一个工作簿复制并粘贴到另一个
工作:将范围从一个工作簿复制到另一个(另一个工作簿存在,需要打开)
-
复制范围:
`Worksheets("paste").Range("A2:BD500").SpecialCells(xlCellTypeVisible).Copy`
-
打开新文件:
Workbooks.Open Filename:="C:\Test\test.xlsx", WriteResPassword:="WriteFile"
-
激活工作表并粘贴@RANGE A6
Windows("test.xlsx").Activate Selection.Range("A6").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False
问题:它不粘贴在A6! 它在任何细胞!
如果test.xlsx工作簿中的当前select打开到D5,则使用Selection.Range("A6")
引用D10,而不是A6。
Dim wb As Workbook Set wb = Workbooks.Open(Filename:="C:\Test\test.xlsx", WriteResPassword:="WriteFile") With Worksheets("paste") .Range("A2:BD500").SpecialCells(xlCellTypeVisible).Copy wb.Worksheets(1).Cells(6, "A").PasteSpecial xlPasteValues End With
请参阅如何避免在Excel VBAmacros中使用select 。 打开工作簿时,不应该依赖静态单元格或当前选定的单元格。
在工作簿之间复制特定范围的简单方法:
Workbooks(source).Worksheets("Sheet1").Range("A2:BD500").Copy _ Workbooks(destination).Worksheets("Sheet1").Range("A6")