VBA 从一个工作簿复制并粘贴到另一个

Fre*_*dox 4 excel vba excel-formula

作业:将范围从一个工作簿复制到另一个(另一个工作簿存在并且需要打开)

  1. 复制范围:

    `Worksheets("paste").Range("A2:BD500").SpecialCells(xlCellTypeVisible).Copy`
    
    Run Code Online (Sandbox Code Playgroud)
  2. 打开新文件:

    Workbooks.Open Filename:="C:\Test\test.xlsx", WriteResPassword:="WriteFile"

  3. 激活工作表并粘贴@RANGE A6

    Windows("test.xlsx").Activate Selection.Range("A6").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False

问题:它不粘贴在 A6 中!!!!它进入任何单元格!!!!

小智 5

如果您在 test.xlsx 工作簿中的当前选择打开为 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
Run Code Online (Sandbox Code Playgroud)

请参阅如何避免在 Excel VBA 宏中使用 Select。打开工作簿时,永远不要依赖一个或多个静态单元格作为当前选择。