Seite 1 von 1

Xlwings schreibt refers_to falsch

Verfasst: Donnerstag 11. September 2025, 18:22
von mechanicalStore
Hallo Zusammen,

Ich will einer Range (gemerged) eines xls Dokumets einen Namen zuweisen, global in workbook.names. Mit

Code: Alles auswählen

rng=wb.sheet[0].range(…..)
address = f“Sheetname!{rng}“
wb.names.add(„test“, refers_to=address)
Das funktioniert auch scheinbar. Aber im Namensmanager von Excel sieht man, dass der Eintrag in refers_to in Hochkommata eingeschlossen ist. Daher kann man auf den Namen nicht zugreifen. Angeblich ein bekanntes Problem von Excel/Com, auf das Xlwings ja basiert. Angeblich aber nur dann, wenn whitespaces im Sheetnamen sind, was aber bei mir gar nicht der Fall ist. Bei der Suche nach Lösungen wird teils vorgeschlagen, das refers_to im Anschluss nach der Erzeugung auszulesen, und mit Strip die hochkommata entfernen und dann nach refers_to zurück schreiben. Andere Quellen behaupten, dass das nicht geht.
Habe es probiert, aber dabei wird die Adresse zerstört, Z.b.

aus Sheetname!$A$2:$H$2 wird Sheetname!ZA2:ZH2

Kennt jemand das Problem und weiß eine Lösung?

Danke und Gruß

Re: Xlwings schreibt refers_to falsch

Verfasst: Freitag 12. September 2025, 09:33
von Dennis89
Hallo,

wenn du `refers_to` ausliest, dann bekommst du folgenden String:
"'=Sheetname!$A$2:$H$2'"?
Wenn ich darauf `strip()` aufrufe, dann bekomme ich einen anderen String als du:

Code: Alles auswählen

>>> address = "'=Sheetname!$A$2:$H$2'"
>>> address
"'=Sheetname!$A$2:$H$2'"
>>> address.strip("'")
'=Sheetname!$A$2:$H$2'
Wie sieht dein Code aus und was gibt `wb.names["test"].refers_to` zurück?

Grüße
Dennis