uno:ExecuteSearch range ricerca & caratteri speciali
Inviato: mercoledì 19 marzo 2014, 7:32
Ciao, dovendo eliminare il conenuto di celle che contengono parti di testo indesiderato, uso questo tipo di semplice macro:
So che si possono anche impostare delle funzioni che fanno questo tipo di cose, ma non sono mai riuscito a farle funzionare, per cui mi appoggio a ciò che mi funziona. Quando devo eliminare molte parole, inserisco un ciclo for next che legge una colonna di parole "indesderate" ed una variabile così elimino tutto in maniera semplice e veloce. A forza di usare questo tipo di ricerca mi sono venute alcune domande.
1- È possibile far leggere i dati da cercare sul foglio1 e farli cancellare sul foglio2?
2- Si può impostare un range di celle all' interno del quale far sostituire le parole cercate? (Non riesco ad essere più chiaro di così..) Faccio un esempio. Nel foglio1 devo cercare la parola patata, posso fare in modo che venga cercata solo nel range A1:M77?
3- Questo tipo di opzione:
args27(10).Name = "SearchItem.SearchString"
args27(10).Value = "PALLAVOLO "
consente in qualche modo l' utilizzo di carateri speciali? Tipo PAL* (che non funziona....) per far cercare tutte la parole che iniziano con PAL?
Spero di essere stato chiaro, grazie.
Codice: Seleziona tutto
REM ***** BASIC *****
Sub Main
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
rem ----------------------------------------------------------------------
dim args26(17) as new com.sun.star.beans.PropertyValue
args26(0).Name = "SearchItem.StyleFamily"
args26(0).Value = 2
args26(1).Name = "SearchItem.CellType"
args26(1).Value = 0
args26(2).Name = "SearchItem.RowDirection"
args26(2).Value = true
args26(3).Name = "SearchItem.AllTables"
args26(3).Value = false
args26(4).Name = "SearchItem.Backward"
args26(4).Value = false
args26(5).Name = "SearchItem.Pattern"
args26(5).Value = false
args26(6).Name = "SearchItem.Content"
args26(6).Value = false
args26(7).Name = "SearchItem.AsianOptions"
args26(7).Value = false
args26(8).Name = "SearchItem.AlgorithmType"
args26(8).Value = 0
args26(9).Name = "SearchItem.SearchFlags"
args26(9).Value = 65536
args26(10).Name = "SearchItem.SearchString"
args26(10).Value = "PALLAVOLO "
args26(11).Name = "SearchItem.ReplaceString"
args26(11).Value = ""
args26(12).Name = "SearchItem.Locale"
args26(12).Value = 255
args26(13).Name = "SearchItem.ChangedChars"
args26(13).Value = 2
args26(14).Name = "SearchItem.DeletedChars"
args26(14).Value = 2
args26(15).Name = "SearchItem.InsertedChars"
args26(15).Value = 2
args26(16).Name = "SearchItem.TransliterateFlags"
args26(16).Value = 1280
args26(17).Name = "SearchItem.Command"
args26(17).Value = 1
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args26())
rem ----------------------------------------------------------------------
dim args27(17) as new com.sun.star.beans.PropertyValue
args27(0).Name = "SearchItem.StyleFamily"
args27(0).Value = 2
args27(1).Name = "SearchItem.CellType"
args27(1).Value = 0
args27(2).Name = "SearchItem.RowDirection"
args27(2).Value = true
args27(3).Name = "SearchItem.AllTables"
args27(3).Value = false
args27(4).Name = "SearchItem.Backward"
args27(4).Value = false
args27(5).Name = "SearchItem.Pattern"
args27(5).Value = false
args27(6).Name = "SearchItem.Content"
args27(6).Value = false
args27(7).Name = "SearchItem.AsianOptions"
args27(7).Value = false
args27(8).Name = "SearchItem.AlgorithmType"
args27(8).Value = 0
args27(9).Name = "SearchItem.SearchFlags"
args27(9).Value = 65536
args27(10).Name = "SearchItem.SearchString"
args27(10).Value = "PALLAVOLO "
args27(11).Name = "SearchItem.ReplaceString"
args27(11).Value = ""
args27(12).Name = "SearchItem.Locale"
args27(12).Value = 255
args27(13).Name = "SearchItem.ChangedChars"
args27(13).Value = 2
args27(14).Name = "SearchItem.DeletedChars"
args27(14).Value = 2
args27(15).Name = "SearchItem.InsertedChars"
args27(15).Value = 2
args27(16).Name = "SearchItem.TransliterateFlags"
args27(16).Value = 1280
args27(17).Name = "SearchItem.Command"
args27(17).Value = 3
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args27())
rem ----------------------------------------------------------------------
End Sub
1- È possibile far leggere i dati da cercare sul foglio1 e farli cancellare sul foglio2?
2- Si può impostare un range di celle all' interno del quale far sostituire le parole cercate? (Non riesco ad essere più chiaro di così..) Faccio un esempio. Nel foglio1 devo cercare la parola patata, posso fare in modo che venga cercata solo nel range A1:M77?
3- Questo tipo di opzione:
args27(10).Name = "SearchItem.SearchString"
args27(10).Value = "PALLAVOLO "
consente in qualche modo l' utilizzo di carateri speciali? Tipo PAL* (che non funziona....) per far cercare tutte la parole che iniziano con PAL?
Spero di essere stato chiaro, grazie.