从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
答案 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