Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Range Bezüge in VBA von fix auf relativ umstellen

Range Bezüge in VBA von fix auf relativ umstellen
fix
Hallo Herber Fans,
ich ermittle einen Range:
Set rgGPTMember_Source = Intersect(rgGPTMemberAugmentation.Rows(1).Find("GPT Member", LookIn:=xlValues, LookAt:=xlWhole).EntireColumn, rgGPTMemberAugmentation)
Dessen Adresse lautet dann: $G$5:$G$34
Dieser Range wird nun in eine Namensdefinition geschrieben:
ActiveWorkbook.Names.Add Name:="rgGPT", RefersTo:=rgGPTMember_Source
Die Namensdefinition referenziert also auf: $G$5:$G$34
Frage: Wie kann ich bei der Erstellung des Ranges oder beim Erstellen der Namensdefinition die fixen Bezüge in relative umwandeln. Also: G5:G34
Mir fällt nichts Schlaues ein. Ich war schon im Forum, habe aber vermutlich Tomaten auf den Augen.
Vielen Dank für Eure Hilfe.
Grüße, Andreas Hanisch
Anzeige

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

Betreff
Benutzer
Anzeige
rgGPTMember_Source.Address(0,0) _oT
07.01.2010 21:06:12
NoNet
_oT = "ohne Text"
AW: rgGPTMember_Source.Address(0,0) _oT
07.01.2010 21:12:44
Andreas
Hi NoNet,
Ich nehme an, Du meintest, die Zeile solle dann so aussehen:
ActiveWorkbook.Names.Add Name:="rgGPT", RefersTo:=rgGPTMember_Source.Address(0, 0)
Die Namensdefinition in der Mappe referenziert dann aber auf: ="G5:G34"
Und das ist ein String und korrekter Bezug, mit dem ich weiterarbeiten kann.
Noch eine Idee?
Grüße, Andreas
Anzeige
Range(rgGPTMember_Source.Address(0,0))
07.01.2010 21:16:38
NoNet
Hallo Andreas,
Mit etwas Phantasie kann man diesen String einfach in eine Range()-Anweisung einfügen ;-) :
ActiveWorkbook.Names.Add Name:="rgGPT", RefersTo:=Range(rgGPTMember_Source.Address(0,0))
Gruß, NoNet
AW: Range(rgGPTMember_Source.Address(0,0))
07.01.2010 21:38:35
Andreas
Hi NoNet,
erklär mich bitte nicht für bescheuert... gut es ist schon spät. Aber es klappt leider nicht. Anbei ein simples Beispiel:
https://www.herber.de/bbs/user/67062.xls
Im Code habe ich Kommentare hinterlegt. Der Debug.Print einer Adresse führt zum korrekten Verhältnis von Row/ Column Absolut. Aber wenn ich es über Range(Adress String) in die Namensdefiniton packe, habe ich wieder zwei Dollarzeichen.
Das Beispiel ist für eine Zelle. Genauso wie ich es brauche. Aber für einen ganze Range müßte es ja analog sein.
Vielen Dank, wenn Du noch einmal einen Blick reinwirfst.
Grüße, Andreas
Anzeige
Reative Namensdefinition - die nächste
07.01.2010 22:29:14
NoNet
Hall Andreas,
sorry - nein : Ich möchte niemanden für "bescheuert" erklären - tut mir leid, wenn das so rüberkam, war nicht meine Absicht :-(( !!
Mein Lösungsvorschlag war nicht ganz korrekt, da Excel mit RefersTo:=... den Bezug immer in absolute Adressen umwandelt.
Villeicht hilft dir jedoch folgende Syntax mit RefersToR1C1:=... weiter :
ActiveWorkbook.Names.Add Name:="clPID_2", RefersToR1C1:="=" & clPID_2.Address(0, 0, 0)
Das bewirkt eine relative Namensdefinition, was dann aber auch bedeutet, dass sich dieser Name in jeder Zelel auf einen unterschiedlichen (absoluten) Bereich bezieht (das wolltest Du vermutlich aber auch, oder ?) !
Gruß, NoNet
Anzeige
AW: Reative Namensdefinition - die nächste
08.01.2010 13:08:04
Andreas
Hi NoNet,
das rockt!
Keine Angst. Das mit dem für bescheuert erklären war nicht ganz ernst gemeint :). Mir ist schon selber klar, daß bei solchen Detailfragen manchmal einfach der Knoten im Kopf nicht platzt. Es ist in einem solchen Fall wenig selbstironisch gemeint.
Ohne Deine Hilfe wäre ich aber vermutlich wirklich nicht drauf gekommen. Auf alle Fälle klappt es nun und ist genau das, was ich brauche.
Dir vielen Dank für Deine Hilfe!
Habe ein gutes Wochenende, Grüße aus Berlin, Andreas.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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