Array
03.01.2019 13:07:58
Peter
ich bräuchte mal einen kleinen Schubs in die richtige Richtung.
Ich muss das Maximum einer Zeile aus verschiedenen Bereichen ermitteln. Leider können sich die benötigten Spalten an unterschiedlichen Stellen der Tabelle befinden. Aus diesem Grund habe ich einer Funktion erstellt, die die richtie Spaltennummer ermittelt.
Klappt alles hervorragend.
Nun benötige ich das ganze Konstrukt aber an unterschiedlichen Stellen im Code. Problemstellung ist hier, dasss je nach Situation unterschiedliche Spalten zur Ermittlung des Maximums benötigt werden.
Meine Idee war nun, die benötigten Spaltenüberschriften in ein Array zu packen mit dem ich dann meine Funktion füttere. Das Ergebnis der Funktion (eine Zahl zwischen 1 und maximal 50) packe ich dann widerum in ein anderes Array. Die Werte dieses Arrays übernehme ich dann zur Ermittlung meines Maximums.
Hier ein Auszug aus dem Code
Dim RowT As Long
Dim arrColNames As Variant
Dim arrCol As Variant
Dim lngZ As Long
...
arrColNames = Array("Screening", "Initial Dose", "Titration 1", "Titration 2", "Titration 3", "Titration 4")
For lngZ = LBound(arrColNames) To UBound(arrColNames)
arrCol(lngZ) = fctVisTypeDetail((arrColNames(lngZ)), "Column")
Next
Set rngTitMax = Union(.Cells(RowT, arrCol(0)), .Cells(RowT, arrCol(1)), .Cells(RowT, arrCol(2)), .Cells(RowT, arrCol(3)), .Cells(RowT, arrCol(4)), .Cells(RowT, arrCol(5)))
...
Das Problem:
In der fett markierten Zeile bricht das Programm mit der Meldung Typen unverträglich ab.
Die lngZ ist 0 und das Ergebnis der Funktion ist 4. Also sollte doch im Array arrCol an Position 0 der Wert 4 hinterlegt werden, oder?
Ich bin verwirrt.
Gruß
Peter