Spalten-Namen statt Spalten-Nummern in einem Makro
29.09.2015 08:07:45
Ingo
Ich habe hier eine Makro, was mir eine Text-Datei aus den Daten einer Excel-Tabelle erstellt:
Sub Reset()
' Produktdatei erstellen
Dim varSpalten
Dim intSpalte As Integer, lngZeile As Long
Dim objQuellblatt As Worksheet
Dim objZielblatt As Worksheet
Dim strPfad As String
Dim varTmp, strOut As String
Open "C:\[...]\datei.csv" For Output As #1
'Datenquelle für Produktdatei festlegen
Set objQuellblatt = ThisWorkbook.Sheets("Angebot")
varSpalten = Array(2, 3, 4, 5, 6, 9, 15, 24, 25, 26, 27, 28)
varTmp = objQuellblatt.UsedRange
For lngZeile = 1 To UBound(varTmp)
strOut = ""
If Len(varTmp(lngZeile, varSpalten(0))) > 0 Then
For intSpalte = 0 To UBound(varSpalten)
strOut = strOut & ";" & varTmp(lngZeile, varSpalten(intSpalte))
Next intSpalte
strOut = Mid(strOut, 2)
Print #1, strOut
End If
Next lngZeile
Close #1
End Sub
In der Zeile
varSpalten = Array(2, 3, 4, 5, 6, 9, 15, 24, 25, 26, 27, 28)
sind ja die Spalten-Nummern aufgeführt, dessen Inhalte verwendet werden sollen.
Ich würde nun gerne wissen, ob man diese Zeile auch umschreiben kann.
Und zwar so, dass ich dort nicht die Spalten-Nummern sondern die Spalten-Namen angebe.
Der Grund, warum ich das gerne möchte, ist folgender:
Wenn ich jetzt in meiner Tabelle irgendwelche Spalten hinzufüge, verschieben sich ja unter Umständen auch die Spalten und dessen Spalten-Nummern, die von dem Makro verwendet werden sollen. Und ich muss dass Makro jedes Mal anpassen.
Das würde ich mir gerne ersparen und darum im Makro gerne statt der Spalten-Nummern lieber die Spalten-Namen verwenden.
Da ich ja leider von VBA nicht so sehr viel verstehe, wollte ich Euch gerne um Hilfe bitten.
Gruß
Ingo