Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi All,
I have written the following code to save specified named worksheets that are held in an array. What I can't get right is the looping through the array - I get the error "Complie error: For Each control variable on arrays must be variant" How would I set some worksheet names to an array and then loop through them? Thanks in advance Andi Sub Seperate_SMR() Dim sh As Worksheet 'Dim sh As Variant 'sFileName = "BackupDB_" & Format(Date, "yyyymmdd") & "_" & Format(Time, "hhmmss") Dim Sheet_Data(2) As Variant Sheet_Data(0) = "Project Log Form" Sheet_Data(1) = "Risk Management Plan" For Each sh In Sheet_Data sh.Copy Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:="C:\Temp\Test\" & sh.Name & _ Format(Date, "yyyymmdd") & ".xls" Application.DisplayAlerts = True ActiveWorkbook.Close Savechanges:=False Next End Sub |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
You cannot use For Each on an array, you have to index through it
Sub Seperate_SMR() Dim sh As Worksheet Dim i As Long 'Dim sh As Variant 'sFileName = "BackupDB_" & Format(Date, "yyyymmdd") & "_" & Format(Time,"hhmmss") Dim Sheet_Data(2) As Variant Sheet_Data(0) = "Project Log Form" Sheet_Data(1) = "Risk Management Plan" For i = LBound(Sheet_Data) To UBound(Sheet_Data) Set sh = Worksheets(Sheet_Data(i)) sh.Copy Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:="C:\Temp\Test\" & sh.Name & _ Format(Date, "yyyymmdd") & ".xls" Application.DisplayAlerts = True ActiveWorkbook.Close Savechanges:=False Next End Sub -- HTH Bob Phillips "Andibevan" wrote in message ... Hi All, I have written the following code to save specified named worksheets that are held in an array. What I can't get right is the looping through the array - I get the error "Complie error: For Each control variable on arrays must be variant" How would I set some worksheet names to an array and then loop through them? Thanks in advance Andi Sub Seperate_SMR() Dim sh As Worksheet 'Dim sh As Variant 'sFileName = "BackupDB_" & Format(Date, "yyyymmdd") & "_" & Format(Time, "hhmmss") Dim Sheet_Data(2) As Variant Sheet_Data(0) = "Project Log Form" Sheet_Data(1) = "Risk Management Plan" For Each sh In Sheet_Data sh.Copy Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:="C:\Temp\Test\" & sh.Name & _ Format(Date, "yyyymmdd") & ".xls" Application.DisplayAlerts = True ActiveWorkbook.Close Savechanges:=False Next End Sub |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Ahhh - Thanks Bob
"Bob Phillips" wrote in message ... You cannot use For Each on an array, you have to index through it Sub Seperate_SMR() Dim sh As Worksheet Dim i As Long 'Dim sh As Variant 'sFileName = "BackupDB_" & Format(Date, "yyyymmdd") & "_" & Format(Time,"hhmmss") Dim Sheet_Data(2) As Variant Sheet_Data(0) = "Project Log Form" Sheet_Data(1) = "Risk Management Plan" For i = LBound(Sheet_Data) To UBound(Sheet_Data) Set sh = Worksheets(Sheet_Data(i)) sh.Copy Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:="C:\Temp\Test\" & sh.Name & _ Format(Date, "yyyymmdd") & ".xls" Application.DisplayAlerts = True ActiveWorkbook.Close Savechanges:=False Next End Sub -- HTH Bob Phillips "Andibevan" wrote in message ... Hi All, I have written the following code to save specified named worksheets that are held in an array. What I can't get right is the looping through the array - I get the error "Complie error: For Each control variable on arrays must be variant" How would I set some worksheet names to an array and then loop through them? Thanks in advance Andi Sub Seperate_SMR() Dim sh As Worksheet 'Dim sh As Variant 'sFileName = "BackupDB_" & Format(Date, "yyyymmdd") & "_" & Format(Time, "hhmmss") Dim Sheet_Data(2) As Variant Sheet_Data(0) = "Project Log Form" Sheet_Data(1) = "Risk Management Plan" For Each sh In Sheet_Data sh.Copy Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:="C:\Temp\Test\" & sh.Name & _ Format(Date, "yyyymmdd") & ".xls" Application.DisplayAlerts = True ActiveWorkbook.Close Savechanges:=False Next End Sub |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Bob,
Some of my cells are over 255 characters - how do I overcome this as it throws a run-time error due to the size of various cells. Thanks Andi "Bob Phillips" wrote in message ... You cannot use For Each on an array, you have to index through it Sub Seperate_SMR() Dim sh As Worksheet Dim i As Long 'Dim sh As Variant 'sFileName = "BackupDB_" & Format(Date, "yyyymmdd") & "_" & Format(Time,"hhmmss") Dim Sheet_Data(2) As Variant Sheet_Data(0) = "Project Log Form" Sheet_Data(1) = "Risk Management Plan" For i = LBound(Sheet_Data) To UBound(Sheet_Data) Set sh = Worksheets(Sheet_Data(i)) sh.Copy Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:="C:\Temp\Test\" & sh.Name & _ Format(Date, "yyyymmdd") & ".xls" Application.DisplayAlerts = True ActiveWorkbook.Close Savechanges:=False Next End Sub -- HTH Bob Phillips "Andibevan" wrote in message ... Hi All, I have written the following code to save specified named worksheets that are held in an array. What I can't get right is the looping through the array - I get the error "Complie error: For Each control variable on arrays must be variant" How would I set some worksheet names to an array and then loop through them? Thanks in advance Andi Sub Seperate_SMR() Dim sh As Worksheet 'Dim sh As Variant 'sFileName = "BackupDB_" & Format(Date, "yyyymmdd") & "_" & Format(Time, "hhmmss") Dim Sheet_Data(2) As Variant Sheet_Data(0) = "Project Log Form" Sheet_Data(1) = "Risk Management Plan" For Each sh In Sheet_Data sh.Copy Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:="C:\Temp\Test\" & sh.Name & _ Format(Date, "yyyymmdd") & ".xls" Application.DisplayAlerts = True ActiveWorkbook.Close Savechanges:=False Next End Sub |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Also - as the array is 0 based - should the upper limit for i be
Ubount(Sheet_Data)-1 Interestingly - when I changed this, the prious problem to do with 255 characters seems to have gone away? Ta Andi "Andibevan" wrote in message ... Bob, Some of my cells are over 255 characters - how do I overcome this as it throws a run-time error due to the size of various cells. Thanks Andi "Bob Phillips" wrote in message ... You cannot use For Each on an array, you have to index through it Sub Seperate_SMR() Dim sh As Worksheet Dim i As Long 'Dim sh As Variant 'sFileName = "BackupDB_" & Format(Date, "yyyymmdd") & "_" & Format(Time,"hhmmss") Dim Sheet_Data(2) As Variant Sheet_Data(0) = "Project Log Form" Sheet_Data(1) = "Risk Management Plan" For i = LBound(Sheet_Data) To UBound(Sheet_Data) Set sh = Worksheets(Sheet_Data(i)) sh.Copy Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:="C:\Temp\Test\" & sh.Name & _ Format(Date, "yyyymmdd") & ".xls" Application.DisplayAlerts = True ActiveWorkbook.Close Savechanges:=False Next End Sub -- HTH Bob Phillips "Andibevan" wrote in message ... Hi All, I have written the following code to save specified named worksheets that are held in an array. What I can't get right is the looping through the array - I get the error "Complie error: For Each control variable on arrays must be variant" How would I set some worksheet names to an array and then loop through them? Thanks in advance Andi Sub Seperate_SMR() Dim sh As Worksheet 'Dim sh As Variant 'sFileName = "BackupDB_" & Format(Date, "yyyymmdd") & "_" & Format(Time, "hhmmss") Dim Sheet_Data(2) As Variant Sheet_Data(0) = "Project Log Form" Sheet_Data(1) = "Risk Management Plan" For Each sh In Sheet_Data sh.Copy Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:="C:\Temp\Test\" & sh.Name & _ Format(Date, "yyyymmdd") & ".xls" Application.DisplayAlerts = True ActiveWorkbook.Close Savechanges:=False Next End Sub |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Help with Loop / Array / Ranges | Excel Programming | |||
Assign Results from If...Then and Loop to an Array (VBA) | Excel Programming | |||
PROB: Grouping Shapes With An Array Loop | Excel Programming | |||
Loop worksheets | Excel Programming | |||
Help -- Loop or Array? How to identify? | Excel Programming |