WindsorKnot
Board Regular
- Joined
- Jan 4, 2009
- Messages
- 160
Hi All,
I'm having a little bit of trouble with my code. I basically need to copy-paste special a large workbook (50 worksheets) into a new range-valued workbook. I've defined Sheet as S, but in some instances when I use the variable "S" I received a runtime error 1004.
Please see the highlighted red "S" in the code below.
Also, if one knew of an easier method for this particular operation that would be great!
Sub PasteSpecial()
Dim W As Workbook
Dim S1 As Worksheet
Dim S As Sheets
Set W = Workbooks("newfile2")
Set S1 = W.Worksheets("Sheet1")
Set S = Sheets
S(Array("Sheet1", "Sheet2", "Sheet3")).Select
S1.Activate
S(Array("Sheet1", "Sheet2", "Sheet3")).Copy
Cells.Select
Range("a1").Activate
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Paste:=XlPasteFormat
S("Sheet2").Select
Cells.Select
Selection.PasteSpecial Paste:=xlPasteValues, Paste:=XlPasteFormat
S("Sheet3").Select
Cells.Select
Selection.PasteSpecial Paste:=xlPasteValues, Paste:=XlPasteFormat
MsgBox "New Range-Valued Workbook has been created"
Application.CutCopyMode = False
End Sub
I'm having a little bit of trouble with my code. I basically need to copy-paste special a large workbook (50 worksheets) into a new range-valued workbook. I've defined Sheet as S, but in some instances when I use the variable "S" I received a runtime error 1004.
Please see the highlighted red "S" in the code below.

Also, if one knew of an easier method for this particular operation that would be great!
Sub PasteSpecial()
Dim W As Workbook
Dim S1 As Worksheet
Dim S As Sheets
Set W = Workbooks("newfile2")
Set S1 = W.Worksheets("Sheet1")
Set S = Sheets
S(Array("Sheet1", "Sheet2", "Sheet3")).Select
S1.Activate
S(Array("Sheet1", "Sheet2", "Sheet3")).Copy
Cells.Select
Range("a1").Activate
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Paste:=XlPasteFormat
S("Sheet2").Select
Cells.Select
Selection.PasteSpecial Paste:=xlPasteValues, Paste:=XlPasteFormat
S("Sheet3").Select
Cells.Select
Selection.PasteSpecial Paste:=xlPasteValues, Paste:=XlPasteFormat
MsgBox "New Range-Valued Workbook has been created"
Application.CutCopyMode = False
End Sub