Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1700to1704
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Range-Objekt setzen ohne select

Range-Objekt setzen ohne select
21.07.2019 08:48:16
Jens
Moin mal wieder:-)
Ich bin immer noch dabei, die 'selects' zu eliminieren.
Folgender Code funktioniert nur, wenn das Tabellenblatt 'Overview' auch selektiert ist, was ich natürlich vermeiden möchte:-)
Sub Spalten_Formatieren()
Dim i As Long
Dim rng, outRng As Range
If Blatt.Name = "Overview" Then
For i = 2 To 20 Step 2
Set rng = Sheets("Overview").Range(Cells(3, i), Cells(LZEI, i))
If outRng Is Nothing Then
Set outRng = rng
Else
Set outRng = Application.Union(outRng, rng)
End If
Next
Die erste Schleifenzeile liefert 'Range Methode fehlerhaft', wenn rng gesetzt werden soll. Dim Blatt as worksheet steht unter Option Explicit.
Wie bekomme ich in OutRng das Tabellenblatt mit rein?
Gruß und Danke,
Jens

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Range-Objekt setzen ohne select
21.07.2019 08:51:07
Hajo_Zi
Hallo Jens,
ja, Range bezieht sich auf Overview und Cells auf die aktuelle Tabelle.
arbeite mit With

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
AW: Range-Objekt setzen ohne select
21.07.2019 09:03:26
Jens
Danke für die schnelle Antwort,
aber
For i = 2 To 20 Step 2
With Sheets("Overview")
Set rng = .Range(Cells(3, i), Cells(LZEI, i))
End With
If outRng Is Nothing Then
Set outRng = rng
Else
Set outRng = Application.Union(outRng, rng)
End If
Next
geht auch nicht.....?
Anzeige
AW: Range-Objekt setzen ohne select
21.07.2019 09:05:36
Hajo_Zi
cells bezieht sich immer noch auf aktuelle Tabelle da er Punkt fehl.
Gruß Hajo
AW: Range-Objekt setzen ohne select
21.07.2019 09:08:57
Werner
Hallo Jens,
sei mir nicht böse aber bei VBA gut solltest du wissen, dass du bei Verwendung von With - End with dadurch auf das im With angegebene Blatt referenzierst, indem du vor alle Range Objekte einen Punkt setzt.
Sub Spalten_Formatieren()
Dim i As Long
Dim rng, outRng As Range
With Worksheets("Overview")
For i = 2 To 20 Step 2
Set rng = .Range(.Cells(3, i), .Cells(LZEI, i))
If outRng Is Nothing Then
Set outRng = rng
Else
Set outRng = Application.Union(outRng, rng)
End If
Next
End With
set rng=nothing:set outRng=nothing
End Sub
Gruß Werner
Zudem ist im Code die Variable LZEI weder deklariert, noch wurde ihr ein Wert zugewiesen.
Und die mit Set zugewiesenen Range Objekte sollten auch wieder geleert werden.
Anzeige
AW: Range-Objekt setzen ohne select
21.07.2019 09:18:20
Jens
Danke Euch beiden!!
Warum sollte ich böse sein? Wahrheit tut weh:-)
Bzgl. LZEI und Leeren: Das war nur der relevante Ausschnitt des Codes!
Gruß,
Jens
AW: Range-Objekt setzen ohne select
21.07.2019 17:49:29
Daniel
Hi
die Problemursache wurde ja schon erklärt.
hier noch eine alternative zur WITH-Klammer, falls diese schon für einen anderen Zellbereich verwendet wird:
Set rng = Sheets("Overview").Cells(3, i).Resize(LEZEI - 3 + 1, 1)
Gruß Daniel
AW: Range-Objekt setzen ohne select
22.07.2019 06:39:04
Jens
Moin,
Danke Dir für den Hinweis!!
Im Moment habe ich eher das Problem, dass das Makro (eher Makroabfolge) jetzt statt 2 1/2 Minuten nun
3 1/2 Minuten dauert.
Aber dafür mache ich einen neuen Thread auf, wenn ich der Ursache etwas näher bin!
Gruß,
Jens
Anzeige
Das ist seltsam
22.07.2019 07:51:19
Daniel
Normalerweise werden Makros schneller, wenn man so arbeitet.
Gruß Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige