Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Range Select mit Variablen

Range Select mit Variablen
Tom
Hallo zusammen,
wie kann ich denn beim selektieren von 2 unterschiedlichen Spalten Variablen verarbeiten?
Beispiel:
Range("J:J,CS:CX").Select
So ist es klar...nur wie mir Variablen?
variable1 = CS
variable1 = CX
Range("J:J,variable1:variable2").Select ?
Ich könnte ggf, auch mit Zahlen arbeiten also A = 1, Spalte B = 2 etc.
Kann mir da jemand mal Hilfestellung geben?
Danke
Der Tom
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Range Select mit Variablen
04.05.2010 09:40:11
David
Hallo Tom.
du musst aus den feststehenden Werten und den Variablen den String "nachbauen".
Range("J:J,"&variable1&":"&variable2) für dein Beispiel. Alternativ kann man auch noch innerhalb der Range-Anweisung mit Cells() arbeiten.
Select ist prinzipiell meistens vermeidbar, dazu müsste man aber deinen Code sehen.
Gruß
David
Anzeige
AW: Range Select mit Variablen
04.05.2010 09:42:16
Tom
Danke für die Info, werde es mal gleich testen.
Das Select benötige ich in dem Fall, da ich das selektierte drucken will.
Der Tom
AW: Range Select mit Variablen
04.05.2010 10:08:16
David
dazu brauchst du nicht unbedingt Select.
Der Ausdruck
Range().Select
Selection.Printout
lässt sich zusammenfassen zu
Range().Printout...
Das meinte ich mit meiner Aussage. In vielen ähnlich gelagerten Fällen ist es ebenso (z. Bsp. Copy). Das Select entsteht normalerweise nur aus technischen Gründen bei der Aufzeichnung durch den Recorder.
Gruß
David
Anzeige
AW: Range Select mit Variablen
04.05.2010 10:04:52
Tom
Das funktioniert leider nicht. Ich bekomme als Fehlermeldung:
Fehler beim Kompeilieren:
Erwartet Listentrennzeichen oder )
AW: Range Select mit Variablen
04.05.2010 10:11:33
David
Dann poste endlich den Code, mit deinen Bruchstückchen kann man nicht viel anfangen.
Ich bin nicht der VBA-Experte, aber für Range() sollte es noch reichen. Mach mal vor und hinter den &-Zeichen jeweils ein Leerzeichen und achte darauf, dass die Klammern alle richtig gesetzt sind.
Gruß
David
Anzeige
AW: Range Select mit Variablen
04.05.2010 10:25:07
Tom
So ich habs!
Sieht zwar noch nicht besonders toll aus, aber ich werde jetzt mal den code bereinigen und zusammenfassen.
Danke!
Sub Makieren_Drucken()
Dim strLetter       As String
Dim bytPos          As Byte
lngColumn = Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Column
Anfang = lngColumn - 6
strLetter = Cells(1, lngColumn).Address
strLetter = Replace(strLetter, "$", "", , 1)
bytPos = InStr(strLetter, "$")
If bytPos  0 Then GetColumnLetter = Left(strLetter, bytPos - 1)
strLetter = Cells(1, Anfang).Address
strLetter = Replace(strLetter, "$", "", , 1)
bytPos = InStr(strLetter, "$")
If bytPos  0 Then Anfang = Left(strLetter, bytPos - 1)
Ende = GetColumnLetter
Range("J:J," & Anfang & ":" & Ende).Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Excel VBA: Range Select mit Variablen


Schritt-für-Schritt-Anleitung

Um in Excel VBA einen Bereich mit Variablen auszuwählen, kannst du folgenden Ansatz verwenden. Hier ist ein einfaches Beispiel, das zeigt, wie du die Range-Anweisung mit Variablen kombinierst:

  1. Definiere deine Variablen für die Spalten:

    Dim variable1 As String
    Dim variable2 As String
    variable1 = "CS"
    variable2 = "CX"
  2. Erstelle den Range-String, der die Variablen beinhaltet:

    Range("J:J," & variable1 & ":" & variable2).Select
  3. Führe deine gewünschte Aktion aus, z. B. drucken:

    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

Das vollständige Makro könnte folgendermaßen aussehen:

Sub Makieren_Drucken()
    Dim variable1 As String
    Dim variable2 As String
    variable1 = "CS"
    variable2 = "CX"

    Range("J:J," & variable1 & ":" & variable2).Select
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub

Häufige Fehler und Lösungen

  • Fehlermeldung: "Erwartet Listentrennzeichen oder )"

    • Lösung: Stelle sicher, dass du die Variablen korrekt in den String einfügst. Achte darauf, dass die &-Zeichen richtig gesetzt sind und keine Leerzeichen dazwischen sind.
  • Probleme mit der Verwendung von Select

    • Lösung: In vielen Fällen ist es besser, die direkte Verwendung von Select zu vermeiden und stattdessen direkt auf die Range zuzugreifen, um die Ausführung effizienter zu gestalten.

Alternative Methoden

Anstelle von Range().Select kannst du die Range-Anweisung direkt verwenden, wie zum Beispiel:

Range("J:J," & variable1 & ":" & variable2).PrintOut

Dies reduziert den Code und macht ihn übersichtlicher.


Praktische Beispiele

Hier ist ein Beispiel, das zeigt, wie du mehrere Bereiche in einem Makro definieren kannst:

Sub Beispiel()
    Dim startSpalte As Integer
    Dim endSpalte As Integer
    startSpalte = 3 ' entspricht Spalte C
    endSpalte = 5   ' entspricht Spalte E

    Range(Cells(1, startSpalte), Cells(10, endSpalte)).Select
    ' Weitere Aktionen hier
End Sub

Mit Cells kannst du auch dynamische Bereiche definieren, was besonders nützlich ist, wenn du mit variablen Daten arbeitest.


Tipps für Profis

  • Verwende With-Anweisungen, um deine Codes zu vereinfachen:

    With Range("J:J," & variable1 & ":" & variable2)
      .Select
      .PrintOut
    End With
  • Nutze Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert werden. Das hilft, Fehler und Missverständnisse zu vermeiden.

  • Teste deinen Code Schritt für Schritt im Debugging-Modus, um zu sehen, wo es möglicherweise hakt.


FAQ: Häufige Fragen

1. Wie definiere ich eine Range mit Variablen in VBA?
Du kannst eine Range mit Variablen definieren, indem du die Variablen in der Range-Anweisung kombinierst, wie hier gezeigt:

Range("J:J," & variable1 & ":" & variable2).Select

2. Warum sollte ich Select vermeiden?
Select kann oft überflüssig sein und die Ausführung deines Codes verlangsamen. Du kannst direkt auf den Bereich zugreifen, um die Effizienz zu steigern.

3. Wie kann ich mehrere Spalten mit Variablen auswählen?
Verwende einfach die Variablen für den Start- und Endbereich, um deine Spalten dynamisch zu wählen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige