Excel 2007: Bereichsnamen verwenden

Hallo Profis,

ich muß in einem VBA-Skript einige Einträge aus einer Tabelle durcharbeiten und stelle es mir hilfreich vor, den Bereich mit den Einträgen mit einem Namen zu kennzeichnen. Doch wie greife ich nun in VBA auf die einzelnen Einträge zu?

Auf den Inhalt eines Einzelzell-Namens zuzugreifen, ist einfach:

Range("Zellname").Value

Doch wie greife ich auf den n-ten Eintrag eines eindimensionalen Bereiches zu? Ich vermute etwas in der Art (z. B. die vierte Zelle des Bereichs):

Range("Bereichsname", 4).Value

Und wenn wir schon dabei sind: Wie sieht das bei einem zweidimensionalen Bereich aus?

Vielen Dank für die Hilfe und einen schönen zweiten Advent :o)
-Rob.

Grüezi Rob

Doch wie greife ich auf den n-ten Eintrag eines
eindimensionalen Bereiches zu? Ich vermute etwas in der Art
(z. B. die vierte Zelle des Bereichs):

Range(„Bereichsname“, 4).Value

Und wenn wir schon dabei sind: Wie sieht das bei einem
zweidimensionalen Bereich aus?

Für ein- wie zweidimensionale Datenfelder (oder Bereichsnamen) geeignet wäre eine Schleife in der folgenden Art:

Public Sub tr()
Dim i As Long
Dim j As LoadPictureConstants
 For i = 1 To Range("my\_Data").Rows.Count
 For j = 1 To Range("my\_Data").Columns.Count
 MsgBox Range("my\_Data")(i, j).Value
 Next j
 Next i
End Sub

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

OT Nachfrage zu LoadPictureConstants

Dim j As LoadPictureConstants

Grüezi Thomas,

kam es zu „LoadPictureConstants“ weil du dich bei IntelliSense verklickt hattest? *hoff*

Gruß
Reinhard

Grüezi Reinhard

Dim j As LoadPictureConstants

Grüezi Thomas,

kam es zu „LoadPictureConstants“ weil du dich bei IntelliSense
verklickt hattest? *hoff*

Nein, in diesem Fall wird der Zugriff erst dann möglich, wenn man diesen Typen verwendet, da das Ganze ja wie ein Bitmap-Bild aufgebaut ist. :wink:

…Quatsch - natürlich hast Du recht - keine Ahnung was die Intellisense da angestellt hat, und spannend dass es dennoch funktioniert hat.

Die Variable hätte natürlich auch als Long deklariert werden sollen.

Danke fürs aufmerksame Lesen

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Ergebnis: Range(‚my_Data‘)(x, y).Value
Salu Thomas,

Für ein- wie zweidimensionale Datenfelder (oder Bereichsnamen)
geeignet wäre eine Schleife in der folgenden Art:

Public Sub tr()
Dim i As Long
Dim j As LoadPictureConstants
For i = 1 To Range(„my_Data“).Rows.Count
For j = 1 To Range(„my_Data“).Columns.Count
MsgBox Range(„my_Data“)(i, j).Value
Next j
Next i
End Sub

Super! Vielen vielen Dank. Auch an Reinhard :wink:

Allerbeste Adventsgrüße
-Rob.