Array-Range Problem
08.04.2019 16:06:26
Benni
ich habe folgenden Codeausschnitt, der super funktioniert. Die einzige Problemstelle ist, dass es nicht immer nur 3 Spalten im quell_ws gibt. Daher muss ich die Variable col_nr(2) eigentlich ändern zu col_nr(quell_lastcol - 1). Excel sagt dann jedoch, es ist ein konstanter Ausdruck erforderlich.
Wie kann ich das trotzdem variabel halten?
Jemand eine Lösung für mich?
Danke im Voraus!
Gruß
Benjamin
Public Sub Spaltennummerierung()
'Worksheets Deklaration
Dim quell_ws As Worksheet, ziel_ws As Worksheet
Set quell_ws = ThisWorkbook.Worksheets("A")
Set ziel_ws = ThisWorkbook.Worksheets("B")
'Variablen Deklaration
Dim quell_row As Long, quell_col As Long, quell_lastrow As Long, quell_lastcol As Long, _
ziel_row As Long, ziel_col As Long, ziel_lastrow As Long, ziel_lastcol As Long
quell_lastcol = quell_ws.Cells(1, Columns.Count).End(xlToLeft).Column
ziel_lastcol = ziel_ws.Cells(10, Columns.Count).End(xlToLeft).Column
Dim col_nr(2) As Integer
For quell_col = 1 To quell_lastcol
col_nr(quell_col - 1) = 0
For ziel_col = 1 To ziel_lastcol
Select Case LCase(ziel_ws.Cells(10, ziel_col))
Case LCase(quell_ws.Cells(1, quell_col)):
col_nr(quell_col - 1) = ziel_col
Exit For
End Select
Next ziel_col
If col_nr(quell_col - 1) = 0 Then
col_nr(quell_col - 1) = ziel_lastcol + 1
ziel_ws.Cells(10, col_nr(quell_col - 1)) = quell_ws.Cells(1, quell_col)
ziel_ws.Cells(10, col_nr(quell_col - 1)).Interior.ColorIndex = 6
ziel_lastcol = ziel_lastcol + 1
End If
Next quell_col
End Sub