问题标签 [libreoffice-basic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
221 浏览

hyperlink - 如何在 Star Basic 中检查损坏的内部链接?

我正在为 LibreOffice Writer 创建一个 Basic 宏来检查损坏的内部链接。简而言之:

  • 生成所有锚点的列表
  • 遍历文档,查找内部超链接
  • 如果内部超链接不在锚列表中,打开它进行编辑(并停止)

我的代码有一些未解决的问题:

  1. (内fnBuildAnchorList)我们如何获得每个标题的编号?例如,如果第一个级别 1 标题文本是“介绍”,那么正确的锚点是#1.Introduction|outline并且我们正在录制Introduction|outline
  2. (内subInspectLink)我们如何正确测试标题的超链接?我注意到,当我手动点击指向标题的链接时,编号相同时它会成功,而且文本相同时也会成功。
    例如,如果有内部链接#1.My first heading|outline,可以通过超链接访问,#1.Previous header name|outline 可以通过超链接访问#2.3.5.My first heading|outline
  3. (内subInspectLink)我们如何打开特定的超链接进行编辑?我们是否将参数传递给.uno:EditHyperlink? 我们移动光标吗?(我发现的所有动作都是相对的,例如.uno:GoRight)我们使用文本部分的.Start.End属性吗?

您可以使用任何带有标题的文档来检查第一个问题——一个带有所有锚点的 MsgBox 会弹出,您会看到缺少的大纲编号。

第二个问题需要一个内部链接错误的文档。

0 投票
1 回答
237 浏览

struct - LibreOffice Basic 忽略我的“一些”类型...结束类型定义

我正在使用 LibreOffice 版本:4.4.3.2 构建 ID:40m0(Build:2) 区域设置:en_AU

我有一个基本模块

在我拥有的任何子或功能之前的这个模块的顶部

但是当我运行一个子程序时,设置一个断点并“观察”InitiativeColumn 对象只显示前两个字段。

在此处输入图像描述

我的其余代码与此结构相关,因为文档调用它们如下。我没有在其他任何地方引用它。谁能告诉我为什么前两个会起作用,而其余的不起作用?我在这段代码中还有另外两个结构,并且都忽略了最后三个字段。这是一个错误吗?

0 投票
1 回答
1772 浏览

vba - libreoffice 的 ActiveCell.Offset

如何访问 LibreOffice (OpenOffice) 中选定单元格的附近?

我只能使用“ThisComponent.getCurrentSelection”获得选定的单元格。

我只需要 MS Excel VBA 函数“ActiveCell.Offset”的替代方法。

0 投票
1 回答
1311 浏览

libreoffice - Libre Office writer 宏插入日期和日期 + n 天

这里有一个类似的问题,但是使用 calc 但是答案似乎是特定于 calc 的。我想在 libre writer 中编写一个宏,插入当前日期、逗号和空格,然后是当前日期 + 2 天,逗号和空格,然后是当前日期 + 14 天。

记录日期插入的马可给出以下内容,但老实说,我不知道如何解释此代码,并且在网上几乎找不到帮助。

将不胜感激任何帮助或想法。干杯达米安

0 投票
3 回答
558 浏览

vb6 - 符号已经定义不同 VB

我正在尝试编译以下代码,但我不断收到错误消息。我之前多次遇到这个错误,所以我被迫使用变通功能。这次我真的厌倦了这个问题,我需要知道这里出了什么问题。

编译此代码会在“for i = 0 to aData.Length”行出现以下错误:

基本语法错误。

符号 aData 已经以不同方式定义。

不知道为什么。抱歉,如果这是一个微不足道的问题,但我对 VB 完全陌生。C++ 并没有让我为此做好准备。

0 投票
1 回答
1108 浏览

report - 如何从 LibreOffice Calc 电子表格生成格式化报告?

我有一个非常简单的 LibreOffice Calc 电子表格,其中包含列标题和列(单元格可以是多行),类似于:

我想以(半)自动化方式获得一个纯文本文件,其中包含以下内容:

这有可能吗?我知道 LO 宏功能(例如:this),所以简单的答案可能是“是”,但我从未使用过它们,所以我需要一些指导(我什至不知道如何使用这样的东西)。

0 投票
2 回答
1182 浏览

replace - 导入 PDF 后替换(修复)LibreOffice Draw 中的字体

我将 BASIC 宏改编为 Draw,但不明白为什么它只在第一页转换字体。代码是:

故障在哪里?

0 投票
1 回答
1965 浏览

forms - LibreOffice Basic 从表单中获取元素

我正在尝试从表单上的文本字段中获取价值。

有一个例外:“类型:com.sun.star.container.NoSuchElementException”在“textBox = oForm.getByName”行上。我在同一个表单上有一个名为“描述”的文本字段,我按下以运行此宏的按钮在哪里。这里有什么问题?

0 投票
1 回答
797 浏览

libreoffice-basic - 如何计算 OpenOffice/LibreOffice BASIC 中的重复条目?

我在 LibreOffice 的许多工作表中都有大量数据——一ADDRESS列和一DATA列——我想计算每个地址出现的次数,放入一NUM_ADDR列。例如:

手动操作时,我COUNTIF在每个地址上都使用了该函数,但我发现从长远来看,宏会节省时间。这是我到目前为止的一个片段,因为前面的函数已经确定了数据的长度(行数),存储在RowCounter

所以我的第一个问题是:我们如何确定一个元素(当前单元格中的地址)是否在CountedAddr数组中(见(?)上文)?其次,是否有更有效的方法来实现第二个代码块?不幸的是,排序是不可能的,因为地址和数据的年表形成了某种时间基准。第三,整个shebang是解决这个问题的愚蠢方式吗?

非常感谢软件任务的硬件操作!

0 投票
1 回答
429 浏览

vba - 使用 BASIC 在 LibreOffice 中复制表格的最后一行

我在 ODT 文档中有一个命名表,并希望将包含所有内容的最后一行复制到新行(上图)中,然后替换此副本中的一些值。

我已经在 Word/VBA 中为 DOCX 完成了此操作:

这在 LibreOffice 中也可以吗?到目前为止,我有:

如何选择和复制整并在新行上运行搜索和替换?提示:该行可能包含其他对象,例如子表。