Seite 1 von 1
[GELÖST]Spezialfilter ohne Duplikate in Basic nutzen?
Verfasst: So, 18.12.2011 23:48
von Entchen19
Hallo zusammen,
wenn ich in Spalte A 1.000 Einträge habe und hiervon 300 Duplikate sind, konnte ich Excel mit dem Spezialfilter und der Option "Keine Duplikate" relativ schnell eine um die Duplikate bereinigte Liste in eine neue Spalte kopieren und zwar hiermit:
Code: Alles auswählen
Columns("V:X").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Columns("A:C"), Unique:=True
Ich hätte gerne das Pendant in Basic hierzu gewusst, der Makrorekorder scheint da nicht wirklich ein gutes Ergebnis zu liefern.
Irgendwer eine Idee hierzu, einen Anhaltspunkt, wie die Funktion hier in Basic heißt?
Die Suche hat nur recht unperformante Alternativen aufgezeigt
LG
Entchen
Re: Spezialfilter ohne Duplikate in Basic nutzen?
Verfasst: Mo, 19.12.2011 13:10
von bst
Hi,
versuche das mal so. Siehe:
http://www.oooforum.org/forum/viewtopic.phtml?t=5096
HTH, Bernd
--
Code: Alles auswählen
Sub Main
oSheet = thiscomponent.sheets(0)
xfilter = oSheet.getcellrangebyname("A1:D10") ' getcellrangebyposition(0,0,3,9)
xfilterDesc=xFilter.createFilterDescriptor(true)
oDst = oSheet.getCellRangeByName("F1").getCellAddress()
xfilterDesc.ContainsHeader=true
xfilterDesc.SkipDuplicates=true
xfilterDesc.CopyOutputData=true
xfilterDesc.OutputPosition=oDst
xFilter.filter(xFilterDesc)
End Sub
Re: Spezialfilter ohne Duplikate in Basic nutzen?
Verfasst: Mo, 19.12.2011 15:04
von Entchen19
Hallo Bernd,
vielen Dank für deine Hilfe, das scheint schon einmal nicht schlecht zu sein
So habe ich es hinbekommen, es wäre spannend zu wissen, wie ich wirklich komplette Spalten ansprechen könnte.
Und ich habe noch das Problem, dass er mir den ersten Wert doppelt ausgibt, ich habe keine Ahnung, warum, er macht es auch, wenn der garnicht doppelt existiert
Code: Alles auswählen
oFilter = oSheet.getcellrangebyname("V1:X60000") ' getcellrangebyposition(0,0,3,9)
oFilterDesc = oFilter.createFilterDescriptor(true)
oZielBereich = oSheet.getCellRangeByName("A1").getCellAddress()
oFilterDesc.ContainsHeader = true
oFilterDesc.SkipDuplicates = true
oFilterDesc.CopyOutputData = true
oFilterDesc.OutputPosition = oZielBereich
oFilter.filter(oFilterDesc)
LG
Entchen
Re: [GELÖST]Spezialfilter ohne Duplikate in Basic nutzen?
Verfasst: Di, 20.12.2011 09:03
von bst
Morgen,
nimm mal getCellRangeByPosition und bestimme die Anzahl der Zeilen aus der Tabelle:
Code: Alles auswählen
oSheet = ThisComponent.currentController.ActiveSheet
iCount = oSheet.Rows.Count
Und, der Spezialfilter erwartet (wie auch der in Excel) in der 1. Zeile eine Überschrift. Versuche mal:
cu, Bernd