【发布时间】:2021-03-24 15:07:26
【问题描述】:
我习惯了 VBA,但我应该调试一些 libre office 基本代码,所以我尝试在代码隐藏中编写一个基本模块来处理我的工作表。
问题是,每当我尝试运行模块时,它似乎不知道起点在哪里等等,当我在 excel vba 中启动这段代码时,它运行起来很容易。也许有人知道如何在 libre office 中处理模块以及为什么有一个 main 方法..
REM ***** BASIC *****
Sub Main
Test()
End Sub
Sub Test
Dim MyStringVariable As String
MyStringVariable = "Wow!"
Worksheets(1).Range("A1").Value = MyStringVariable
End Sub
【问题讨论】:
-
dim document as objectdim 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 = "$a$1" dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())这也是 libre office 的相同逻辑^^ -
不太一样的逻辑。此代码不适用于 Worksheets (1),但适用于 ActiveSheet。这不是 LibreOffice 代码,这是一个“调度程序脚本”。你可以认为这只是击键的记录,仅此而已。这对于成熟的编程来说是不够的。如果您决定认真对待开放式办公室,请查看Pitonyak's book。不要连续阅读,根据目录选择给定时刻所需的章节(我自己是这样开始的)。
-
好的,谢谢,但是我实际上是通过 libre office 在 cmets 中录制这个宏,它会自动为我创建它
标签: excel vba libreoffice worksheet-function basic