Comment puis-je créer et passer de tableau de chaîne à un sous Excel VBA?

VBA tableaux sont nouveaux pour moi et il semble que il ya plusieurs façons de créer des tableaux de chaîne.

Je savoir combien de points il faut être dans le tableau par le comte de la zone Utilisateur (donc peut-être que je n'ai pas besoin d'un tableau dynamique??). J'ai de la difficulté du passage du tableau par le biais d'une autre sous-Routine.

Le processus de la pensée est comme suit:

  1. Itérer sur une liste de noms d'utilisateur
  2. Créer une fiche pour chaque
  3. Enregistrer chaque nom d'utilisateur dans un tableau comme je l'ai itérer
  4. Dans une autre sous-Routine, sélectionner toutes les feuilles que j'ai créé et enregistrer en tant que PDF

Ci-dessous mon code. J'obtiens l'erreur d'Exécution 9 - Indice en dehors de la gamme (en se Référant à l'objet array)

J'apprécie toute l'aide! Merci!!!!

Sub CreateAllDashboards(StartDate As Date, EndDate As Date)
'Used to iterate through the list of users and call the Sub to create Dashboards

Dim UserNameRangeStart As Range
Set UserNameRangeStart = Range("UserName")
Dim SheetNames() As String

'Cyle through users
For i = 1 To GetUserNameRange().CounT
    'Some code
    ReDim Preserve SheetNames(i)
    SheetNames(i) = UserNameRangeStart.Offset(i, 0).Value
Next i

Call CreatePDF(EndDate, SheetNames) 'Also tried SheetNames()

End Sub

Sub CreatePDF(FileDate As Date, ByRef SheetNames As Variant)

Dim FilePath As String, FileName As String

FilePath = Application.ActiveWorkbook.Path
FileName = "Production Dashboards - " & Format(FileDate, "mmddyy") & ".pdf"


ThisWorkbook.Sheets(SheetNames).Select

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
    FileName, Quality:=xlQualityStandard, IncludeDocProperties:=True, _
     IgnorePrintAreas:=False, OpenAfterPublish:=True

End Sub

OriginalL'auteur Barrett Kuethen | 2014-12-31