array versus case-Auswahl

22/05/2009 - 18:49 von Norbert Harz | Report spam
Hallo allerseits,

ich hab mal 'ne Frage ;-)

Ich hab aus einer Tabelle in Abhàngigkeit von Spalte und Zeile einen
Wert auszulesen. Bisher hab ich das ganze immer mit mehreren
verschachtelten case - Anweisungen erledigt.
Da die ganze Sache nun doch ein wenig komplexer wird, will ich das
eventuell mit einem Array 'erschlagen'.
Ich hab nur leider nix gefunden, wie man mittels VBA die Position in
einem Array bestimmen kann. Geht das überhaupt? (Also sowas wie bei php
mit strpos oder so...)

BSP:
Spalte 1 | Spalte 2 | Spalte 3
+-+-+-
Zeile 1 | Wert 11 | Wert 21 | Wert 31
Zeile 2 | Wert 21 | Wert 22 | Wert 32
Zeile 3 | Wert 31 | Wert 23 | Wert 33

Ich such beispielsweise Wert 32 in Abhàngigkeit von Spalte 3 und Zeile 2...

Hat jemand 'ne Idee, wie man das 'elegant' lösen kann?


Danke für Denkanstöße und Tipps,
Norbert
Bitte nur in die Newsgroup antworten.
Bei PM bitte nospam durch info ersetzen.
 

Lesen sie die antworten

#1 Eberhard Funke
22/05/2009 - 20:04 | Warnen spam
Am Fri, 22 May 2009 18:49:33 +0200 schrieb Norbert Harz:

Ich hab aus einer Tabelle in Abhàngigkeit von Spalte und Zeile einen
Wert auszulesen. Bisher hab ich das ganze immer mit mehreren
verschachtelten case - Anweisungen erledigt.
Da die ganze Sache nun doch ein wenig komplexer wird, will ich das
eventuell mit einem Array 'erschlagen'.
Ich hab nur leider nix gefunden, wie man mittels VBA die Position in
einem Array bestimmen kann. Geht das überhaupt? (Also sowas wie bei php
mit strpos oder so...)

BSP:
Spalte 1 | Spalte 2 | Spalte 3
+-+-+-
Zeile 1 | Wert 11 | Wert 21 | Wert 31
Zeile 2 | Wert 21 | Wert 22 | Wert 32
Zeile 3 | Wert 31 | Wert 23 | Wert 33

Ich such beispielsweise Wert 32 in Abhàngigkeit von Spalte 3 und Zeile 2...




Hallo Norbert,

Die Werte in A1:C3
Formellösung: =INDIREKT(ADRESSE(3;2))

Werte in einem Variant-Array:
Sub Wert_Finden()
Dim varMatr As Variant
' Einlesen der Werte in den Array:
varMatr = ActiveSheet.Range("A1:C3")
MsgBox varMatr(3, 2)
End Sub

(Übrigens: Wert 23 und Wert 32 sind in Deinem Beispiel positionsmàssig
vertauscht; nur damit's keine Verwirrung gibt)


Mit freundlichen Grüssen Eberhard
XP home XL 2000
Eberhard(punkt)W(punkt)Funke(at)t-online.de

Ähnliche fragen