自由办公室,清理范围

时间:2016-01-20 12:09:10

标签: vba libreoffice libreoffice-calc

我一直在网上寻找如何获取范围然后“清除”它的想法。可悲的是,即使我找到了几个解决方案,自由办公室的vba让事情变得非常复杂。我试图录制一个宏,并编辑它...它的工作原理,但不是我想要的。我需要从一个Form(Dialog)执行下面的代码,它完成它的意思,但是在后台显示所有内容,我不能拥有它....有没有办法,这样做?例如在vba Exel我会写:

Range("A1:DA25000").ClearContents (or .Delete)

以下是宏观录音的内容:

Function Brisanje()

dim document   as object
dim dispatcher as object

document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Nr"
args1(0).Value = 2

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args1())

dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$A$1:$DA$25000"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())

dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())

end Function

1 个答案:

答案 0 :(得分:1)

您要查找的代码位于Andrew Pitonyak's macro document6.4. Clear a cell部分。请注意,该代码也适用于多个单元格:

  

REM您可以使用" A1:B2"

等范围

宏录制不是学习如何编写宏的好方法。它们生成调度程序代码,这与使用UNO API不同。