von Stephan » Mi, 25.08.2021 08:11
dann schaue Dir Kapitel 9 in
http://www.calc-info.de/files/Calc_StarBasic.pdf an.
Wenn Du dort .findAll benutzt hast Du ein Ergebnis das alle Fundstellen beinhaltet und das Du dann mit .Select sichtbar markieren und per dispatcher-Cede direkt löschen kannst, was sehr schnell geht auch bei einem umfangreiche ERgebnis.
Hier ist ein Stück ergänzter Code, aus dem obigen PDF, den Du noch auf DEine Suche anpassen musst, weil Du nach einem regulären Ausdruck suchst.
Code: Alles auswählen
Sub textInZellebereichSuchen
Dim oZelleOderBereichOderBlatt as Object
Dim oSuchBeschreibung as Object
Dim oTrefferZelle as Object
' Zellbereich holen in dem ersetzt werden soll
oZelleOderBereichOderBlatt = ThisComponent.Sheets(0).getCellRangeByName("A1:D40")
' SearchDescriptor erzeugen
oSuchBeschreibung = oZelleOderBereichOderBlatt._
createSearchDescriptor()
' SearchDescriptor konfigurieren
With oSuchBeschreibung
.SearchString = "Hallo"
.SearchBackwards = False
.SearchCaseSensitive = True
.SearchWords = True
.SearchRegularExpression = False
.SearchStyles = False
.SearchSimilarity = False
.SearchSimilarityRelax = True
.SearchSimilarityRemove = 2
.SearchSimilarityAdd = 2
.SearchSimilarityExchange = 2
End With
ergebnis = oZelleOderBereichOderBlatt.findAll( oSuchBeschreibung )
ThisComponent.getCurrentController.Select(ergebnis)
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:DeleteRows", "", 0, Array())
End Sub
Gruß
Stephan
dann schaue Dir Kapitel 9 in http://www.calc-info.de/files/Calc_StarBasic.pdf an.
Wenn Du dort .findAll benutzt hast Du ein Ergebnis das alle Fundstellen beinhaltet und das Du dann mit .Select sichtbar markieren und per dispatcher-Cede direkt löschen kannst, was sehr schnell geht auch bei einem umfangreiche ERgebnis.
Hier ist ein Stück ergänzter Code, aus dem obigen PDF, den Du noch auf DEine Suche anpassen musst, weil Du nach einem regulären Ausdruck suchst.
[code]Sub textInZellebereichSuchen
Dim oZelleOderBereichOderBlatt as Object
Dim oSuchBeschreibung as Object
Dim oTrefferZelle as Object
' Zellbereich holen in dem ersetzt werden soll
oZelleOderBereichOderBlatt = ThisComponent.Sheets(0).getCellRangeByName("A1:D40")
' SearchDescriptor erzeugen
oSuchBeschreibung = oZelleOderBereichOderBlatt._
createSearchDescriptor()
' SearchDescriptor konfigurieren
With oSuchBeschreibung
.SearchString = "Hallo"
.SearchBackwards = False
.SearchCaseSensitive = True
.SearchWords = True
.SearchRegularExpression = False
.SearchStyles = False
.SearchSimilarity = False
.SearchSimilarityRelax = True
.SearchSimilarityRemove = 2
.SearchSimilarityAdd = 2
.SearchSimilarityExchange = 2
End With
ergebnis = oZelleOderBereichOderBlatt.findAll( oSuchBeschreibung )
ThisComponent.getCurrentController.Select(ergebnis)
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:DeleteRows", "", 0, Array())
End Sub[/code]
Gruß
Stephan