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



从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 – 粘贴类的特殊方法失败">

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

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

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

戈夫

试试这段代码,

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

我会如下

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

相关内容

最新更新