Forum des VBA-Tutorials

Excel: Range abfragen (VBA)

nu_, Dienstag, 01. August 2017, 18:24 (vor 138 Tagen)

Ich muss ermitteln, welche Bereiche der Tabelle markiert sind, also linke obere Zelle und rechte untere Zelle des ersten BEreichs, linke obere ... des zweiten Bereichs u. s. w. Wie geht das?
Für sachdienliche Hinweise dankt im Voraus
Dieter

Excel: Range abfragen

Martin Asal, Freitag, 04. August 2017, 03:37 (vor 136 Tagen) @ nu_

Hi,

probiere es mit Application.Selection. Das gibt ein Range-Objekt der aktuellen Auswahl zurück.

Martin

Excel: Range abfragen

nu_, Samstag, 05. August 2017, 14:51 (vor 134 Tagen) @ Martin Asal

Danke Martin,
nur leider bin ich zu schwach in VBA.

Ich habe mal getestet:
Sub xxx()
Dim xx As Range
xx = ActiveWorkbook.Selection
End Sub

mit "Application.Selection" kommt
Laufzeitfehler '91':
Objektvariable oder With-Blockvariable nicht festgelegt.

mit "activeWorkbook.Selection" kommt
Laufzeitfehler '438':
Objekt unterstützt diese Eigenschaft oder Methode nicht

Selection klingt gut, aber ich kann nichts draus machen. Und wie bekäme ich die 'Koordinaten' der ersten und letzten Zelle aus dem Range, wenn es geklappt hätte? Kann man Range in Text umwandeln?

Excel: Range abfragen

Martin Asal, Montag, 07. August 2017, 15:57 (vor 132 Tagen) @ nu_

Sorry, bin bis zum Wochenende in Urlaub und ohne PC. Kann daher nichts ausprobieren, obwohl die Sache eigentlich ganz einfach ist.

Martin

Excel: Range abfragen

PhilS ⌂, Montag, 07. August 2017, 17:57 (vor 132 Tagen) @ nu_

xx = ActiveWorkbook.Selection

Range ist vom Type eine Objektvariable, daher:

Set xx = ActiveWorkbook.Selection

mit "activeWorkbook.Selection" kommt
Laufzeitfehler '438':
Objekt unterstützt diese Eigenschaft oder Methode nicht

Richtig. Ein Workbook hat keine Selection-Eigenschaft.

Selection klingt gut, aber ich kann nichts draus machen. Und wie bekäme ich die 'Koordinaten' der ersten und letzten Zelle aus dem Range, wenn es geklappt hätte? Kann man Range in Text umwandeln?

Die Address-Eigenschaft der Range wäre eine Möglichkeit das zu ermitteln. - Vielleicht gibt es bessere Lösungen; ich habe keine Ahnung von Excel.

Excel: Range abfragen

nu_, Dienstag, 08. August 2017, 09:22 (vor 131 Tagen) @ PhilS

Danke PhilS, das mit dem Set wär mir vor 18 Jahren, als ich in Rente ging, nicht passiert. Schade, dass es keine Excelexperten mehr gibt. Vielleicht krieg ichs noch heraus - vielleicht auch nicht. Es grüßt - Dieter

Excel: Range abfragen

Martin Asal, Freitag, 11. August 2017, 14:45 (vor 128 Tagen) @ nu_

Wie schon gesagt, eigentlich ganz einfach:

Sub x()
Dim Auswahl As Range, Zelle As Range
 
Set Auswahl = Selection
 
For Each Zelle In Auswahl
    Debug.Print Zelle.Column, Zelle.Row
Next
 
End Sub


Das gibt dir für jede Zelle in der aktuellen Auswahl deren Spalte und Zeile zurück. Du bekommst es bestimmt selbst hin, den jeweils kleinsten Wert zu finden.

Martin

RSS-Feed dieser Diskussion
powered by my little forum