Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1664to1668
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Variables Array in Select verwenden

Variables Array in Select verwenden
02.01.2019 13:20:41
Guido
Hallo VBA Experten,
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!

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variables Array in Select verwenden
02.01.2019 14:06:43
Daniel
Hi
Probier mal
For i = 3 To Application.WorksheetFunction.CountA(shVR.Cells(1, m).EntireColumn)
icounter = icounter + 1
arrTmp(icounter) = shVR.Cells(i, m)
Next i
Sheets(arrTmp).Select
Gruß Daniel
AW: Variables Array in Select verwenden
02.01.2019 15:04:43
Guido
Hallo Daniel,
leider hilft mir dieses nicht ich bekomme weiterhin den Fehler "Run-Time error '9' Subscript out of range".
Die FOR Schleife listet alle meine Einträge aber durch das weglassen vom Join Befehl zeigt er mir nur den letzten Eintrag in arrTmp und alle anderen sind nicht mehr zu sehen. Ausserdem hilft mir das ja nicht beim Format Problem. Die Fehlermeldung ist ja identisch.
Gruß Guido
Anzeige
AW: Variables Array in Select verwenden
02.01.2019 15:33:02
onur

ReDim Preserve arrTmp(1 To icounter)

gehört direkt hinter:
icounter = icounter + 1

AW: Variables Array in Select verwenden
02.01.2019 15:43:12
Guido
Hi Onur,
yepp so funktioniert es wie ich es möchte.
Vielen Vielen Dank!!!
Gruß Guido

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige