Variables Array in Select verwenden
02.01.2019 13:20:41
Guido
ich möchte verschiedene Arbeitsblätter als PDF ausdrucken worfür ich auch eine Lösung habe jedoch möchte ich nun die Auswahl welche Arbeitsblätter ausgedruckt werden varaibel gestalten.
Über eine Combobox besteht die Möglichkeit eine vordefinierte Version auszuwählen.
Die Versionen sind in einem Arbeitsblatt ("VersRelation") aufgelistet. Unter den einzelnen Versionen sind dann die Arbeitsblätter aufgelistet die dann ausgedruckt werden sollen.
Ohne diese variablilität sieht mein Code wie folgt aus
Sub ButtonPrintPDF_Click()
'Variable definition
Dim DocFileName As String
'Use Text Box information for file name
DocFileName = "D:\" & TextFileName.Value
Case Is = ActiveWorkbook.Worksheets("VersionList").Cells(2, 2).Value
'Userform close
Me.Hide
'Print selected worksheets
Sheets(Array("Tabellenblatt1", "Tabellenblatt3", "Tabellenblatt5")).Select
ActiveWorkbook.ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
FileName:=DocFileName, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=True, _
OpenAfterPublish:=True
Case Is = ActiveWorkbook.Worksheets("VersionList").Cells(2, 3).Value
'Userform close
Me.Hide
'Print selected worksheets
Sheets(Array("Tabellenblatt2", "Tabellenblatt6", "Tabellenblatt7")).Select
ActiveWorkbook.ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
FileName:=DocFileName, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=True, _
OpenAfterPublish:=True
End Select
End Sub
Ich habe nun versucht die unter der Version aufgelisteten Arbeitsblätter zusammenzufügen wie es in dem Beispiel oben aussieht und als String zu speichern "fullName = Join(arrTmp, ", ")" und dann in "Sheets(Array(fullName)).Select" Befehl einzubinden.
Schau ich mir das über eine MessageBox an sieht meine Zeichenfolge soweit korrekt aus aber anschließend bekomme ich den Fehler "Run-Time error '9' Subscript out of range"
daher denke ich das ich hier ein Format Problem habe was ich mit meinen Kenntnissen gerade nicht hinbekomme.
Meine selbst gebastelte Zeichenfolge wird wohl nicht als Array erkannt.
Sub ButtonPrintPDF_Click()
'Variable definition
Dim DocFileName As String
Dim shVR As Worksheet
Dim i As Integer
Dim m As Integer
Dim j As Long, arrTmp(), sbody As String, icounter As Integer
Dim fullName As String
m = Application.WorksheetFunction.Match(Me.Box1.Value, shVR.Range("2:2"), 0)
ReDim arrTmp(1 To (Application.WorksheetFunction.CountA(shVR.Cells(1, m).EntireColumn)))
For i = 3 To Application.WorksheetFunction.CountA(shVR.Cells(1, m).EntireColumn)
icounter = icounter + 1
arrTmp(icounter) = Chr(34) & shVR.Cells(i, m) & Chr(34)
Next i
ReDim Preserve arrTmp(1 To icounter)
fullName = Join(arrTmp, ", ")
Sheets(Array(fullName)).Select
ActiveWorkbook.ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=DocFileName, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=True, _
OpenAfterPublish:=True
Danke im Voraus für Eure Hilfe!