von Stephan » Fr, 09.09.2016 08:15
clag hat eigentlich alles gesagt.
Wenn Du genaue Angaben machst, welche Tabellen und Zelle gelöscht werden sollen und wohin dabei die anderen Zellen verschoben werden sollen, wird Dir wohl jemand schnell so ein Makro zusammenschreiben.
Wenn Du es selbst tun willst müsstest Du notfalls für eine einzelne Zelle aufzeichnen:
Code: Alles auswählen
sub Main4
rem ----------------------------------------------------------------------
rem define variables
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 ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$G$5"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Flags"
args2(0).Value = "U"
dispatcher.executeDispatch(document, ".uno:DeleteCell", "", 0, args2())
end Sub
und dann händisch ergänzen, z.B. so:
Code: Alles auswählen
sub Main4
rem ----------------------------------------------------------------------
rem define variables
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 ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Flags"
args2(0).Value = "U"
'alle Zellen:
zellen = Array("$E$4", "$F$4", "$H$4" )
for i = 0 To UBOUND(zellen())
args1(0).Value = zellen(i)
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:DeleteCell", "", 0, args2())
Next i
end Sub
für viele Zelle ist der Code so aber ineffizient, es wäre bessser das gleich komplett per Hand zu programmieren.
Gruß
Stephan
clag hat eigentlich alles gesagt.
Wenn Du genaue Angaben machst, welche Tabellen und Zelle gelöscht werden sollen und wohin dabei die anderen Zellen verschoben werden sollen, wird Dir wohl jemand schnell so ein Makro zusammenschreiben.
Wenn Du es selbst tun willst müsstest Du notfalls für eine einzelne Zelle aufzeichnen:
[code]sub Main4
rem ----------------------------------------------------------------------
rem define variables
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 ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$G$5"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Flags"
args2(0).Value = "U"
dispatcher.executeDispatch(document, ".uno:DeleteCell", "", 0, args2())
end Sub
[/code]
und dann händisch ergänzen, z.B. so:
[code]sub Main4
rem ----------------------------------------------------------------------
rem define variables
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 ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Flags"
args2(0).Value = "U"
'alle Zellen:
zellen = Array("$E$4", "$F$4", "$H$4" )
for i = 0 To UBOUND(zellen())
args1(0).Value = zellen(i)
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:DeleteCell", "", 0, args2())
Next i
end Sub
[/code]
für viele Zelle ist der Code so aber ineffizient, es wäre bessser das gleich komplett per Hand zu programmieren.
Gruß
Stephan