将工作表从一个excel工作簿粘贴到另一工作簿时出错

时间:2018-08-10 06:15:45

标签: excel vba copy paste

从Excel中的VBA项目中,我想打开另一个工作簿,复制工作表的内容并将其粘贴到运行我的项目的工作表中。我基本上是在尝试创建还原功能。

我创建了以下宏来完成工作。

Sub CopyandPaste()
'
' CopyandPaste Macro
'

'
    Workbooks.Open Filename:= _
        "C:\ Backup-File.xlsm"
    Cells.Select
    Selection.Copy
    Windows("Current_File.xlsm").Activate
    Cells.Select
    Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False

End Sub

然后我将代码添加到我的VBA项目中。我在行上收到“运行时错误1004 –类的PasteSpecial方法失败”

Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False

如果我使用“ ActiveSheet.Paste”,则数据将粘贴到Current_File.xlsm中,但公式将丢失。

任何人都可以帮忙。我搜寻了这个论坛和其他论坛,但找不到我要去哪里。我怀疑我已经接近解决方案,但是没有任何效果。

Goeff

2 个答案:

答案 0 :(得分:0)

尝试此代码,

Sub CopyandPaste()
'
' CopyandPaste Macro
'
Dim rng As Range
'
     Workbooks.Open Filename:= _
        "C:\ Backup-File.xlsm"
   ' Cells.Select
  ActiveSheet.UsedRange.Copy
    Windows("Current_File.xlsm").Activate
    'Cells.Select
    Range("A1").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
End Sub

答案 1 :(得分:0)

我将按照以下步骤进行

Sub CopyandPaste()
    Windows("Current_File.xlsm").ActiveSheet.UsedRange.Clear ' clear previous content in "active sheet of "Current_File"

    Workbooks.Open Filename:= "C:\Backup-File.xlsm"
    ActiveSheet.UsedRange.Copy destination:=Windows("Current_File.xlsm").ActiveSheet.Range("A1") ' copy "Backup-File" "active" sheet used range and paste them to "Current_File" "active" sheet
End Sub