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

Forumthread: Wie Range mit Variable füllen ?

Wie Range mit Variable füllen ?
Holger
Hallo liebes Forum,
nachdem ich nach einer halben Stunde probieren nicht zu einem Ergebnis komme,
poste ich hier mal. Ich möchte einen Range mit einer Variablen füllen, damit
ich genau bis zur letzten benutzten Zelle zähle.
Im Detail möchte ich anstatt der zweiten Zeile so arbeiten:
Set rngBereich = Range("D7:ENumOfRow")
Egal wie, es klappt nicht, anscheinend kriege ich die richtige Syntax nicht hin!
Sub aaa
NumOfRow = ActiveCell.SpecialCells(xlLastCell).Row
Set rngBereich = Range("D7:E100")
rngBereich.ClearContents
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Set rngBereich = Range("D7:E" & NumOfRow)
16.06.2010 16:50:11
NoNet
_oT = "ohne Text"
@NoNet: VIELEN DANK
16.06.2010 17:09:27
Holger
Klappt einwandfrei.
Ich habe alles mit Anführungszeichen ausprobiert, aber
auf die Syntax wäre ich nie gekommen. Manchmal sollte
man nicht zu kompliziert denken.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Range mit Variablen in Excel füllen


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf „VBAProject (DeineDatei)“ und wähle „Einfügen“ > „Modul“.

  3. Schreibe den VBA-Code: Nutze den folgenden Code, um einen Range mit einer Variablen zu füllen:

    Sub FuelleRangeMitVariable()
        Dim NumOfRow As Long
        Dim rngBereich As Range
    
        ' Bestimme die letzte benutzte Zeile
        NumOfRow = ActiveSheet.Cells(Rows.Count, "D").End(xlUp).Row
    
        ' Setze den Range mithilfe der Variablen
        Set rngBereich = Range("D7:E" & NumOfRow)
    
        ' Lösche vorhandene Inhalte
        rngBereich.ClearContents
    End Sub
  4. Führe das Makro aus: Schließe den VBA-Editor und drücke ALT + F8, um das Makro auszuführen.


Häufige Fehler und Lösungen

  • Fehler: „Typenkonflikt“
    Lösung: Stelle sicher, dass die Variable NumOfRow als Long deklariert ist, um Überlaufprobleme zu vermeiden.

  • Fehler: „Bereich nicht gefunden“
    Lösung: Überprüfe, ob die von Dir angegebene Spalte (in diesem Fall „D“) tatsächlich Daten enthält.

  • Syntaxfehler
    Lösung: Achte darauf, dass Du den Range mit der richtigen Syntax definierst. Der Satz Set rngBereich = Range("D7:E" & NumOfRow) ist korrekt.


Alternative Methoden

Eine alternative Methode ist die Verwendung des Cells-Objekts, um einen Range dynamisch zu definieren. Hier ein Beispiel:

Set rngBereich = ActiveSheet.Cells(7, 4).Resize(NumOfRow - 6, 2)

In diesem Fall wird die Startzelle bei D7 festgelegt und die Höhe des Bereichs wird mit Resize angepasst.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du den Range mit Variablen in verschiedenen Szenarien verwenden kannst:

  1. Daten in eine Tabelle einfügen: Du kannst den dynamischen Range verwenden, um Daten aus einer anderen Quelle in Deinen definierten Bereich einzufügen.

  2. Formatierungen anwenden: Mit einem Range-Objekt kannst Du auch Formatierungen auf einen variablen Bereich anwenden, z.B.:

    rngBereich.Font.Bold = True
  3. Daten analysieren: Du kannst den Bereich nutzen, um Berechnungen durchzuführen, z.B. die Summe einer Spalte:

    Dim summe As Double
    summe = Application.WorksheetFunction.Sum(rngBereich)

Tipps für Profis

  • Verwende With-Anweisungen: Um den Code lesbarer zu gestalten, kannst Du With-Anweisungen verwenden.

    With rngBereich
        .ClearContents
        .Font.Bold = True
    End With
  • Optimierung: Schalte die Bildschirmaktualisierung ab, um die Ausführungsgeschwindigkeit zu verbessern:

    Application.ScreenUpdating = False
    ' Dein Code hier
    Application.ScreenUpdating = True

FAQ: Häufige Fragen

1. Wie kann ich einen Range mit mehreren Variablen definieren?
Du kannst mehrere Variablen in der Range-Definition verwenden, z.B. Set rngBereich = Range(Cells(startRow, startCol), Cells(endRow, endCol)).

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, dieser Code sollte in allen modernen Excel-Versionen funktionieren, die VBA unterstützen.

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