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

时间:2017-12-11 12:05:31

标签: libreoffice-calc libreoffice-basic

我有一个LibreOffice calc表和一个writer文档。我想使用文档中的表格中的字段。这适用于"常规"字段。

但是一个字段(条形码)有一个来自额外的Makro /脚本的公式。这个公式在calc中运行良好。但是,如果我打开"数据源"在作家中我只看到" #VALUE"代替。此外,如果我打印文档,则没有插入正确的数据。

在编写器和计算中打开宏的使用。 如何将所需数据导入我的编写文档?

最好的问候 约翰内斯

1 个答案:

答案 0 :(得分:0)

首先,转到工具 - >宏 - >组织宏 - > 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

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

spreadsheet example - formulas spreadsheet example - values

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

接下来,转到文件 - >创建数据库链接。新数据库。

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

Base中的表格如下所示。

table in Base

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

  • 展开到新数据库 - >表格 - >表1。

data sources window

  • 单击第二行记录的行前面并拖动到主文档区域。
  • 将数据插入:字段。
  • 数据库列是条形码和全名。
  • 按OK。

result

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