【发布时间】:2015-12-14 12:57:09
【问题描述】:
我最终会选择更复杂的东西,但我什至无法让这个简单的版本工作。
它会打开其他文件,但它只会将第二个工作簿(包含要复制内容的宏的那个)留空。
我尝试了其他“在工作簿之间复制/粘贴”线程的一些建议,但没有任何效果。
大多数给我一个“工作表类的粘贴方法失败”错误,我不知道如何修复,因为即使 PasteSpecial 也无法修复它?
我对 VBA 比较陌生,需要为我的工作运行一些东西。提前感谢您的帮助!
在下面的示例代码中,我尝试从 CPWholeDocTest1.xlsx 复制到 CPWholeDocTest2.xlsm。
Sub CopyPasteRawData()
Dim x As Workbook
Dim y As Workbook
'## Open both workbooks first:
Set x = Workbooks.Open("C:\Users\rnewma\Documents\Excel Projects\Test\CPWholeDocTest1.xlsx")
Set y = Workbooks.Open("C:\Users\rnewma\Documents\Excel Projects\Test\CPWholeDocTest2.xlsm")
'Now, transfer values from x to y:
y.Sheets("Test").Range("A1:B5").Value = x.Sheets("Sheet1").Range("A1:B5")
'Close x:
'x.Close
End Sub
【问题讨论】:
-
您是从启用宏的工作簿运行此代码,还是尝试从 .xlsx 文件运行它?
-
来自 xlsm 文件,所以应该启用宏。
-
你在下面测试了 R3uK 的答案吗,因为我看不出代码有什么问题。
-
是的,我做到了。它完全空白。我什至将他的修改复制/粘贴到我的上面,以确保我没有遗漏任何其他内容,而我什么也没得到。
-
如果您在 .xlsm 工作簿中运行代码,请将 Set y = Workbooks.Open(".....") 更改为设置 y = ThisWorkbook。对我有用。
标签: vba excel copy-paste