Wie hier https://de.openoffice.info/viewtopic.php?f=18&t=68721 beschrieben, starte ich aus einer ToDo-Datei Makros in diversen Calc-Dokumenten.
Unter anderem sollen in einem Dokument Duplikate in Zellen enfernt werden:
Code: Alles auswählen
Sub Umbruch
oDoc = ThisComponent
oSheet = ThisComponent.getSheets.getByName ("Gesamtübersicht")
oCellCursor = oSheet.createCursor()
oCellCursor.GotoEndOfUsedArea(True)
lCol = oCellCursor.getRangeAddress.EndColumn
lRow = oCellCursor.getRangeAddress.EndRow
oRange = oSheet.getCellRangeByPosition(4,1,lCol,lRow)
oRange.clearContents (1023)
oCell = oSheet.getCellByPosition (4,1)
oCell.FormulaLocal = "=UNIQUES($Work1.E2;"" // "")"
oRange.fillAuto(com.sun.star.sheet.FillDirection.TO_RIGHT, 1)
oRange.fillAuto(com.sun.star.sheet.FillDirection.TO_BOTTOM, 1)
aDat = oRange.getDataArray()
oRange.setDataArray(aDat)
Code: Alles auswählen
function UNIQUES(sText As String, sDelimiter As String) As String
Dim k As Long, n as long, i as long
Dim aData() As String, aDataNew() as string
Dim neu as boolean
aData = Split(sText, sDelimiter)
n=ubound(aData())
Redim aDataNew(n)
For k = 0 To n
neu=true
i=0
do while aDataNew(i)<>""
if aData(k)=aDataNew(i) then neu=false
i=i+1
loop
if neu then aDataNew(i)=aData(k)
Next
Uniques = trim(Join(aDataNew(), sDelimiter))
End function
Sobald ich das Makro aus der ToDo-Datei starte, werden alle Zellen mit "#WERT!" aufgefüllt.
Hat jemand eine Lösung?
Gruß
Uwe