我最终会选择更复杂的东西,但我甚至无法让这个简单的版本工作。
它将打开其他文件,但它只留下第二个工作簿(具有应该被复制的宏的那个)空白。
我已经尝试过其他一些建议"在工作簿之间复制/粘贴"线程,没有任何工作。
大多数人给我一个"工作表类的粘贴方法失败"错误,我不知道如何解决,因为即使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
答案 0 :(得分:0)
将数据从一个范围传输到另一个范围时,您必须添加.Value
或.Value2
才能明确!
(.Value
是默认属性,因此当你没有指定它时它是隐含的:
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", ReadOnly:=False)
DoEvents
'Now, transfer values from x to y:
y.Sheets("Test").Range("A1:B5").Value = x.Sheets("Sheet1").Range("A1:B5").Value
'Close x:
'x.Close
End Sub
答案 1 :(得分:0)
我想发布此信息以帮助其他人,因为有很多其他线程不是很正确,但足够让我迷惑。希望这可以在将来帮助其他人。
工作守则:
Sub CopyPasteRawData2()
' CopyPasteRawData Macro
'
Dim x As Workbook
Dim y As Workbook
'## Open both workbooks first:
Set x = Workbooks.Open("pathname of file you are copying from")
Set y = ThisWorkbook
'Now, transfer values from x to y:
y.Sheets("sheet you are copying to").Range("A1:B5").Value = x.Sheets("sheet you are copying from").Range("A1:B5").Value
'Close x:
x.Close
End Sub