Hallo mikeleb!
ich dachte das Markieren und Kopieren machst du händisch.
Ich hatte es heruntergebrochen auf das Kernproblem:
Es ist "etwas" markiert und bereits in die Zwischenablage kopiert.
Dieses "etwas" soll jetzt irgendwo, wo der Cursor steht, eingefügt werden - aber nur der Inhalt, nicht die Formate.
Wenn es sowieso per Makro passiert, dann kopiere doch einfach nur die Werte (nicht über Copy!).
Scherzkeks. Bist Du ein Bot?
Danach frage ich Dich doch hier die ganze Zeit.
Ich kann es nicht ohne Formate.
Und wie soll es ohne "copy" gehen???
Das sagst Du dem Richtigen ! lol
- die Excel-Datei hat nur eine Tabelle?
Ja, aber das ist doch völlig unerheblich. Ich habe es doch abstrahiert auf "ETWAS IST MARKIERT + KOPIERT UND SOLL WOANDERS gePASTET" werden.
- das Wort "GRADE" steht in einer Zelle und alle darunter befindlichen Zellen sollen kopiert werden
Auch das ist doch völlig egal. Es geht um das Ausspucken der Zwischenablage an beliebieger anderer Cursorposition.
Ich verstehe nicht, wo ich mich da falsch ausdrücke?!?
Ich habe das Pferd jetzt nochmal von Hinten aufgezäumt:
An einer anderen Stelle ist mir aufgefallen, dass genau diese unsinnigen Formatierung einfach verschwinden,
wenn man folgendes drüber laufen lässt.
Ich markiere erst alle Daten und mache dann diesen Dispatcher mit .uno:ExecuteSearch
und dem array args44(20) mit EINUNDZWANZIG Argumenten, von denen ich über die
Hälfte nicht einmal ansatzweise verstehe.
WO KANN MAN das bitte mal nachlesen, welche Argumente wozu beim .uno:ExecuteSearch
benötigt werden?
So, nach dem folgenden Code sind alle Felder reine Datenfelder ohne Formatierungen:
Code: Alles auswählen
args40(0).Name = "Sel"
args40(0).Value = false
dispatcher.executeDispatch(Liste_Frame, ".uno:GoToStart", "", 0, args40())
rem ----------------------------------------------------------------------
'dim args3(0) as new com.sun.star.beans.PropertyValue
args40(0).Name = "Sel"
args40(0).Value = true
dispatcher.executeDispatch(Liste_Frame, ".uno:GoToEndOfData", "", 0, args40())
dim args44(20) as new com.sun.star.beans.PropertyValue
args44(0).Name = "SearchItem.StyleFamily"
args44(0).Value = 2
args44(1).Name = "SearchItem.CellType"
args44(1).Value = 0
args44(2).Name = "SearchItem.RowDirection"
args44(2).Value = true
args44(3).Name = "SearchItem.AllTables"
args44(3).Value = false
args44(4).Name = "SearchItem.SearchFiltered"
args44(4).Value = false
args44(5).Name = "SearchItem.Backward"
args44(5).Value = false
args44(6).Name = "SearchItem.Pattern"
args44(6).Value = false
args44(7).Name = "SearchItem.Content"
args44(7).Value = false
args44(8).Name = "SearchItem.AsianOptions"
args44(8).Value = false
args44(9).Name = "SearchItem.AlgorithmType"
args44(9).Value = 1
args44(10).Name = "SearchItem.SearchFlags"
args44(10).Value = 6144
args44(11).Name = "SearchItem.SearchString"
args44(11).Value = "^.*$"
args44(12).Name = "SearchItem.ReplaceString"
args44(12).Value = "&"
args44(13).Name = "SearchItem.Locale"
args44(13).Value = 255
args44(14).Name = "SearchItem.ChangedChars"
args44(14).Value = 2
args44(15).Name = "SearchItem.DeletedChars"
args44(15).Value = 2
args44(16).Name = "SearchItem.InsertedChars"
args44(16).Value = 2
args44(17).Name = "SearchItem.TransliterateFlags"
args44(17).Value = 1073743104
args44(18).Name = "SearchItem.Command"
args44(18).Value = 3
args44(19).Name = "SearchItem.SearchFormatted"
args44(19).Value = false
args44(20).Name = "SearchItem.AlgorithmType2"
args44(20).Value = 2
dispatcher.executeDispatch(Liste_Frame, ".uno:ExecuteSearch", "", 0, args44())
Dann ist mir aufgefallen, dass da im Prinzip was ähnliches passiert, wie in Deinem genialen Schnipsel
und ich das einfach erst über die Ursprungsdatei (bei der sind mir alle Formatierungen egal) laufen lassen kann
und alle Formatierungen sind futsch!
(Das "^.*$" hatte ich gleich wiedererkannt - was auch immer das sein mag... WItzigerweise replaced Du mit "$1",
obiger code aber mit "&" - wozu ist das?)
Habe es dann noch angepasst, so dass das gesamte Sheet bereingt wird und damit ist das Problem gelöst:
Code: Alles auswählen
ocell=thiscomponent.sheets(0)
ocell.clearcontents(1016)
osr=ocell.createReplaceDescriptor
osr.SearchRegularExpression=true
osr.searchstring="^(.*)$"
osr.replacestring="$1"
ocell.replaceAll(osr)
Nicht gelöst ist das "copy-paste" Problem ohne Formate.
Wenn Du da noch ein code-Schnipselchen hättest?
Und Danke für Deine Mühe + Geduld