Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 64
  • Last Modified:

Define a Sheets Array dynamically

How can I define this array dynamically?

Sheets(Array("AAL Wk 40", "ACA Wk 40", "AFR Wk 40", "BAW Wk 40", "BWA Wk 40", _
        "ETD Wk 40", "GIA Wk 40", "LAN Wk 40", "LOT Wk 40", "OAS Wk 40", "RJA Wk 40", _
        "SVA Wk 40", "TAR Wk 40")).Copy

The optimum solution would be something like this:
Sheets(Array(Sheets(1) through Sheets(Sheets.Count - 1)).copy  - OR -  
Sheets(Array(Sheets(1).Name & ":" & Sheets(Sheets.Count - 1).Name).copy

Do you know what I mean?

Thanks,
John
0
gabrielPennyback
Asked:
gabrielPennyback
2 Solutions
 
Martin LissRetired ProgrammerCommented:
Is there anything unique about the sheets that you want to include in the array? Also what do you want to do with the array?
0
 
NorieCommented:
Perhaps something like this.
Dim arrSheets()
Dim I As Long

    For I = 1 To Sheets.Count - 1
        ReDim Preserve arrSheets(1 To I)
        
         arrSheets(I) = Sheets(I).Name
    Next I
    
   Sheets(arrSheets).Copy

Open in new window

0
 
krishnakrkcCommented:
Sheets(Application.Transpose(Evaluate("Row(1:" & Sheets.Count - 1 & ")"))).Copy

Open in new window


Kris
0
 
gabrielPennybackAuthor Commented:
Thanks, Kris. Nothing gratifies me VBA-wise like a compact code, and you can't beat one line! inmorie, yours also works quite well, but I have to give Kris the bulk of the points because of the one line thing. :- )

Thanks to both of you,

John
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now