This should be really simple, but I've been trawling forums and SO answers for hours to find the answer with no luck, so am (reluctantly) creating a question of my own.
What I'm trying to do is simply create a new workbook, and paste a range from another workbook into that workbook. Sounds simple..?
My original workbook, let's call Book1. I'm trying to create a new workbook, Book2, which I will copy the values of cells A1:B10 to.
Here's one version of my code (starting with Book1 open):
Range("A1:B10").Copy
Set NewBook = Workbooks.Add
With NewBook
.SaveAs Filename:="Book2.xls"
End With
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
This gives a "PasteSpecial of Range class failed" error. I have tried the following fixes with no luck:
- added 'Workbooks("Book2.xls").Activate' to the code
- removed the extra arguments in the PasteSpecial line
- tried '.Paste' instead of '.PasteSpecial'
- changed 'Selection.PasteSpecial' to 'ActiveSheet.PasteSpecial'
- explicitly referencing the copy range, including the workbook and sheet reference
- creating the new workbook first, then performing the copy, before reactivating the new workbook and pasting
None of the above solutions work... any wisdom at this stage would be gratefully received!