LibreOffice 在编写器文档中使用带有宏的单元格

LibreOffice using cells with macro in writer document

我有一个 LibreOffice calc table 和一个 writer 文档。我想在文档中使用 table 中的字段。这适用于 "regular" 个字段。

但是一个字段(条形码)有一个来自其他 Makro/script 的公式。这个公式在计算中运行良好。但是,如果我在 writer 中打开 "datasource",我只会看到“#VALUE”。另外,如果我打印文档,则没有插入正确的数据。

宏的使用已在 writer 和 calc 中打开。 我该怎么做才能将所需的数据放入我的作者文档中?

此致 约翰内斯

首先,转到工具 -> 宏 -> 组织宏 -> LibreOffice Basic。展开到 我的宏 -> 标准 -> 模块 1。这个位置在用户目录下。 https://ask.libreoffice.org/en/question/35598/where-are-lo-basic-macros-stored/.

中详细解释了管理位置

粘贴以下内容user-defined function

Function EAN13_Barcode(index As Integer)
    myArray = Array(_
        "9783598215001","9783598215018","9783598215025",_
        "9783598215032","9783598215049","9783598215056",_
        "9783598215063","9783598215070","9783598215087")
    EAN13_Barcode = myArray(index)
End Function

像这样设置电子表格(第一张图片显示公式,第二张图片显示值)。

注意:如果宏嵌入在 Calc 文档中而不是存储在用户目录中,则 EAN13_Barcode() 将仅在 Calc 中起作用,在 Base 或 Writer 中不起作用。

接下来,通过 文件 -> 新数据库创建数据库 link。

  • 连接到现有数据库:电子表格。
  • 浏览到 .ods 文件。
  • 是的,帮我注册数据库。
  • 另存为新Database.mdb.

Base 中的 table 看起来像这样。

现在在 Writer 中,查看 -> 数据源

  • 扩展到新数据库 -> 表 -> Sheet 1.

  • 在第二条记录所在行的前面单击并拖动到主文档区域。
  • 将数据插入为:字段。
  • 数据库列是 Barcode 和 FullName。
  • 按确定。

如果值发生变化,可以刷新这些字段。为此,请保存 Calc 电子表格和 Writer 文档,关闭所有内容,然后再次打开 Writer 文档。