Am 06.11.2011 10:01, schrieb gooly:
Hello again,
mit Pitonyaks code [Listing 423] kann ich NamedRanges setzen, die auch
nach Ablauf des Macros 'dableiben':
Sub AddNamedRange()
Dim oRange ' The created range.
Dim oRanges ' All named ranges.
Dim sName$ ' Name of the named range to create.
Dim oCell ' Cell object.
Dim s$
sName$ = "MyNRange"
oRanges = ThisComponent.NamedRanges
If NOT oRanges.hasByName(sName$) Then
Dim oCellAddress As new com.sun.star.table.CellAddress
oCellAddress.Sheet = 0 'The first sheet.
oCellAddress.Column = 1 'Column B.
oCellAddress.Row = 2 'Row 3.
s$ = "$Sheet1.$B$3:$D$6"
oRanges.addNewByName(sName$, s$, oCellAddress, 0)
End If
oRange = ThisComponent.NamedRanges.getByName(sName$)
oCell = oRange.getReferredCells().getCellByPosition(0,0)
Print oCell.getString()
End Sub
Aber, was mach ich, wenn ein NamedRange solchen Namens schon existiert
und womöglich falsch (weil alt) dimensioniert ist? Wie kann ich den
löschen oder ändern?
Hallo hier spricht dein privat-Programmierer Frieder :-)
Hier ein Makro von mir , mit dem du Benannte Bereiche wieder Löschen
kannst.:
Sub RemoveNamedRange()
Dim oRanges ' All named ranges.
Dim sName$ ' Name of the named range to create.
sName$ = "MyNRange"
oRanges = ThisComponent.NamedRanges
If oRanges.hasByName(sName$) Then
oRanges.removeByName(sName$)
MsgBox "Der Zellbereich " & sName$ & " wurde entfernt." ,0 , "Hallo"
End If
End Sub
Es gelingt mir nicht einmal einen existierenden NamedRange im
Namenfeld des Sheets selber löschen, d.h., ich kann auch nicht mit
Macro-Recording mal eine Lösung erzeugen.
Den Makrorekorder solltest du dir sowieso schnell abgewöhnen, wenn du
zuverlässige Makros haben willst.
Gruß Frieder
--
Informationen zum Abmelden: E-Mail an users+h...@de.libreoffice.org
Tips zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert