【问题标题】:Error pasting a worksheet from one excel workbook to another workbook将工作表从一个 Excel 工作簿粘贴到另一个工作簿时出错
【发布时间】:2018-08-10 15:23:03
【问题描述】:

从 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,但我的公式会丢失。

谁能帮忙。我已经搜索了这个论坛和其他论坛,但找不到我哪里出错了。我怀疑我已经接近解决方案,但没有任何效果。

戈夫

【问题讨论】:

  • 是否有任何工作表受保护或已合并单元格?

标签: excel vba copy paste


【解决方案1】:

试试这个代码,

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

【讨论】:

    【解决方案2】:

    我会这样走

    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
    

    【讨论】:

    • @Goeff,有什么反馈吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-21
    • 1970-01-01
    • 2017-09-08
    • 2013-11-27
    • 1970-01-01
    • 2021-06-16
    相关资源
    最近更新 更多