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!
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%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.
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% Sie vermissen eine enge Klammer, I.E. Sie schließen Range()
nicht.
Probieren Sie Range(cells(1, 1), cells(lastRow, lastColumn)).Select
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.
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%