VBA: Bereich nach Variablen auswählen

9

Ich möchte den formatierten Bereich einer Excel-Tabelle auswählen. Um die letzte und erste Zeile zu definieren, verwende ich die folgenden Funktionen:

%Vor%

Im nächsten Schritt möchte ich diesen Bereich auswählen: Die Formel sollte so aussehen:

%Vor%

Dies funktioniert jedoch nicht. Vielleicht hat jemand eine Idee, was damit nicht stimmt. Vielen Dank!

    
Fabian Stolz 30.08.2012, 14:33
quelle

6 Antworten

23

Ich habe ein Makro mit 'Relative References' aufgenommen und das habe ich bekommen:

%Vor%

Heres, was ich dachte: Wenn die Bereichsauswahl in Anführungszeichen steht, will VBA wirklich ein STRING und interpretiert die Zellen daraus, also versuchte es Folgendes:

%Vor%

Und es hat funktioniert :) ie .. erstellen Sie einfach eine Zeichenkette mit Ihren Variablen, stellen Sie sicher, sie als STRING-Variablen zu bemaßen und Excel wird direkt davon lesen;)

Folgendes getestet und funktioniert:

%Vor%     
Nikesh Rastogi 30.11.2012 06:59
quelle
7

Ich stieß auf etwas ähnliches - ich wollte einen Bereich basierend auf einigen Variablen erstellen. Die Verwendung der Worksheet.Cells funktionierte nicht direkt, da die Werte der Zelle an Range übergeben wurden.

Das hat aber funktioniert:

%Vor%

Es wurde darauf geachtet, die numerische Position der Zelle in den Bereich zu konvertieren, den Range erwartet, nämlich das A1-Format.

    
Daver 25.03.2015 19:29
quelle
6

Wenn Sie nur den verwendeten Bereich auswählen möchten, verwenden Sie

%Vor%

Wenn Sie von A1 bis zum Ende des verwendeten Bereichs wählen möchten, können Sie die SpecialCells-Methode wie folgt verwenden

%Vor%

Manchmal wird Excel verwirrt, was die letzte Zelle ist. Es ist nie ein kleinerer Bereich als der tatsächlich verwendete Bereich, aber es kann größer sein, wenn einige Zellen gelöscht wurden. Um das zu vermeiden, können Sie Find und das Asterisk-Platzhalterzeichen verwenden, um die letzte echte Zelle zu finden.

%Vor%

Stellen Sie schließlich sicher, dass Sie nur auswählen, wenn Sie es wirklich brauchen. Das meiste, was Sie in Excel VBA tun müssen, können Sie direkt mit dem Bereich tun, anstatt es zuerst auszuwählen. Anstelle von

%Vor%

Sie können

%Vor%     
Dick Kusleika 30.08.2012 14:58
quelle
3

Sie vermissen eine enge Klammer, I.E. Sie schließen Range() nicht.

Probieren Sie Range(cells(1, 1), cells(lastRow, lastColumn)).Select

aus

Aber Sie sollten sich die andere Antwort von Dick Kusleika für mögliche Alternativen ansehen, die Ihnen vielleicht besser dienen. Insbesondere ActiveSheet.UsedRange.Select , das das gleiche Endergebnis wie Ihr Code hat.

    
Daniel Cook 30.08.2012 15:29
quelle
1

Sie verwandeln sie in eine Adresse, aber Cells (#, #) verwendet Integer-Eingaben und keine Adresseingaben. Verwenden Sie also einfach lastRow = ActiveSheet.UsedRange.Rows.count und lastColumn = ActiveSheet.UsedRange.Columns.Count

    
273K Kool 28.06.2013 11:31
quelle
1

Ich habe versucht mit:

%Vor%

wobei lastRow und lastColumn ganze Zahlen sind, aber der Laufzeitfehler 1004 empfangen wurde. Ich benutze eine ältere VB (6.5).

Was funktioniert hat, war folgendes:

%Vor%     
Chris Bates 23.09.2014 18:23
quelle

Tags und Links