Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1696to1700
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

Grundsätzliche Verständnisfrage zu Adressierungen

Grundsätzliche Verständnisfrage zu Adressierungen
05.06.2019 11:52:09
El
Liebes Forum,
(ich hoffe das Subject verwirrt nicht). Ich programmiere oft nach dem Versuch und Irrtum Prinzip. Ich bekomme häufig Fehler beim Ansprechen von Cells bzw.Ranges. Ich will nun aber folgendes endlich mal grundsätzlich vestehen:
1.)

Sub Paste3()
Dim rgBereich As Range
Set rgBereich = Tabelle26.Range(Cells(9, 10), Cells(13, 10)) 'Funktioniert
Set rgBereich = ThisWorkbook.Tabelle26.Range(Cells(9, 10), Cells(13, 10)) ' Funktioniert nicht " _
Fehlermeldung ...Objekt unterstützt Eigenschaft oder Methode nicht
End Sub

'Wo ist das Problem bei ThisWorkbook? auch bei ActiveWorkbook geht es nicht
' Wenn ich anstelle von Tabelle26 den Worksheets("Tabellenname") verwende, funktioniert es. Ich verstehe das Prinzip dahinter nicht.
Frage 2.)
Wenn ich eine Range kopiere, muss die Destination immer den gleichen Zeilen und Spaltenbereich haben?
Sub Paste4()
Dim rgBereich As Range
Set rgBereich = Tabelle26.Range(Cells(9, 10), Cells(13, 10))
rgBereich.Copy Destination:=Tabelle26.Range(Cells(9, 11), Cells(13, 11)) 'funktioniert
rgBereich.Copy 'Destination:=Tabelle26.Range(Cells(9, 11)) ' fuktioniert nicht
' Folgendes aber geht
Tabelle26.Cells(9, 11).Select
Selection.Paste
' Auch hier wieder für mich nicht verständlich:
Tabelle26.Range(Cells(9,11)).select ' funktioniert nicht! Warum?
End Sub

Ich habe da jetzt mehrere unterschiedlich Punkte gefragt, aber ich glaube, dass mir da irgendetwas Grundsätzliches unklar ist, das diese Fälle erklärt. Vielen Dank im Voraus

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Grundsätzliche Verständnisfrage zu Adressierungen
05.06.2019 12:40:00
ChrisL
Hi
Der Klassiker, weil der Fehler (fehlende Referenzierung) sehr oft gemacht wird.
Wenn vor Cells/Range keine Angabe gemacht wird, dann bezieht es sich auf das aktive Blatt. Wenn vor Tabelle keine Angabe gemacht wird, auf die gerade aktive Mappe.
Ob deine Beispiele zu Fehlern führen oder nicht, hängt also damit zusammen, welche Tabelle oder Mappe zufälligerweise gerade aktiv ist.
Um derartige Fehler zu vermeiden, braucht es die konsequente Referenzierung, vor jedem Cells/Range
z.B.
Set rgBereich = ThisWorkbook.Tabelle26.Range(ThisWorkbook.Tabelle26.Cells(9, 10), ThisWorkbook.Tabelle26.Cells(13, 10))
oder kürzer:
With ThisWorkbook.Tabelle26
.Range(.Cells(9, 10), .Cells(13, 10))
End With
cu
Chris
Anzeige
AW: Grundsätzliche Verständnisfrage zu Adressierungen
05.06.2019 14:08:32
El
Hallo Chris,
Danke für den Hinweis auf die Vollständige Referenzierung, aber bei mir führt bereits ...

With ThisWorkbook.Tabelle26

... zu der Fehlermeldung "Objekt unterstützt diese Eigenschaft oder Methode nicht". Was mache ich falsch?
Danke im Voraus
AW: Grundsätzliche Verständnisfrage zu Adressierungen
05.06.2019 15:08:51
ChrisL
Hi
Es fehlt das End With, es steht am falschen Ort oder es gibt Tabelle26 nicht... kann viele Ursachen haben.
cu
Chris
AW: Grundsätzliche Verständnisfrage zu Adressierungen
05.06.2019 15:16:42
El
Hallo Chris,
ich hatte nicht den ganzen Code gelistet, nun vollständig: Selbst folgender Code wirft die Fehlermeldung "Objekt unterstützt diese Eigenschaft oder Methode nicht" aus, sobald er "With" erreicht, obwohl "Tabelle1" existiert:
Sub Test123()
With ThisWorkbook.Tabelle1
End With
End Sub

Anzeige
AW: Grundsätzliche Verständnisfrage zu Adressierungen
05.06.2019 15:38:08
ChrisL
dann existiert ThisWorkbook nicht, weil die Datei noch nicht gespeichert wurde
AW: Grundsätzliche Verständnisfrage zu Adressierungen
05.06.2019 15:43:18
El
Hallo Chris,
hattest Du einmal meinen kurzen Code bei Dir ausprobiert? Funktioniert er denn bei Dir?
ThisWorkbook existiert, wenn ich im Direktfenster
?ThisWorkbook.Name
eingebe, gibt er mir den Namen aus. Das tut er auch bei einer eben frisch geöffneten und noch nicht gespeicherten Datei.
Schöne Grüße
AW: Grundsätzliche Verständnisfrage zu Adressierungen
05.06.2019 16:59:54
ChrisL
OK, stimmt. Wenn du den internen Codename der Tabelle verwendest, dann bezieht sich dieser bereits auf ThisWorkbook, darum weglassen.
AW: Grundsätzliche Verständnisfrage zu Adressierungen
05.06.2019 19:29:09
El
Hi Chris,
das erklärt es dann auch, da tabelle1 bereits ein interner Name ist. Trotzdem bleibt es für mich nicht logisch, dass es stört. Ich hoffe immer die Logik dahinter zu blicken, damit ich mir es merken kann.
Danke für Deine Antworten
Anzeige
AW: Grundsätzliche Verständnisfrage zu Adressierungen
06.06.2019 09:46:34
ChrisL
Hi
Ja aus meiner Sicht, hätte MS den Code- und Tabellennamen gleich behandeln können. Ist wie es ist...
cu
Chris
AW: Grundsätzliche Verständnisfrage zu Adressierungen
05.06.2019 15:38:09
ChrisL
dann existiert ThisWorkbook nicht, weil die Datei noch nicht gespeichert wurde

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige