【发布时间】:2017-04-15 03:03:21
【问题描述】:
用户 Peh 给了我很棒的代码,可以将数据从关闭的工作簿复制到打开的工作簿,但现在我想做相反的事情。我想要一个带有公式和值的打开工作簿,我想将这些作为值复制粘贴到一个封闭的工作簿中。我想从我打开的工作簿的“AllData”选项卡中复制范围 B36:K36 以粘贴名为“archive.xlsx”的已关闭工作簿的 Sheet1 中以 K1 开头的值。
这是我当前的代码(来自互联网):
Sub CopynPasteWrkBk()
Dim InputFile As Workbook
Dim OutputFile As Workbook
Dim Inputpath As String
Dim Outputpath As String '
' Set path for Input & Output
fileInputpath = "/Users/cie/Desktop/macrotest/"
Outputpath = "/Users/cie/Desktop/macrotest/"
'## Open both workbooks first:
Set InputFile = ActiveWorkbook
Set OutputFile = Workbooks.Open(Outputpath & "archive.xlsx")
'Now, copy what you want from InputFile:
InputFile.Sheets(“AllData”).Activate
InputFile.Sheets(“AllData”).Range("B36:K36").Copy
'Now, paste to OutputFile worksheet:
OutputFile.Sheets("Sheet1").Activate
OutputFile.Sheets("Sheet1").Range("k1").PasteSpecialOutputFile.Save
'Close InputFile & OutputFile:
InputFile.Close
OutputFile.Close
End Sub
当我在我的活动工作簿中执行此代码时,它成功打开“archive.xlsx”,给我一个runtime error 9 subscript out of range 并出现错误,然后我看到它在我的活动工作簿中选择了K1(其中是我要在“archive.xlsx”工作簿中开始粘贴的单元格)。怎么了?这两个文件都位于我桌面上的同一个文件夹中。
【问题讨论】:
-
哪一行给出了错误?我的猜测是提到
“AllData”的那个,但你应该告诉我们,这样我们就不必全都猜测(并且全都猜测不同的东西)。 -
是的,我认为是提到“AllData”的那个