标签: libreoffice-basic

LibreOffice Calc定义全局变量

我正在尝试在LibreOffice Calc中测试一些算法,我想在所有单元格/表格中看到一些全局变量.我搜索了互联网,我看到的所有帖子都是如此神秘和冗长!

我很感激如果你能给我简单的noob说明(1 2 3 ...)我该怎么做.

global-variables libreoffice-basic libreoffice-calc

7
推荐指数
3
解决办法
1685
查看次数

在 LibreOffice 中更改单元格背景颜色

我正在使用 LibreOffice 3.5.4.2。我想根据各种条件更改单元格的背景颜色。作为一个最小的例子,我定义了以下宏/函数:

function bgcolor()
Dim Doc As Object
Dim Sheet As Object
Dim Cell As Object   

Doc = ThisComponent
Sheet = Doc.Sheets(1)

Cell = Sheet.getCellByPosition(0, 0)
REM Cell.CellBackColor = RGB(50,60,70)
bgcolor=Cell.CellBackColor
end function
Run Code Online (Sandbox Code Playgroud)

我通过进入=BGCOLOR()一个单元格来执行该功能。正如预期的那样,存在该公式的单元格返回第一个单元格(0,0)A1工作表 1 上的颜色值。

但是,我无法获得更改 cell 背景颜色的功能A1。单元格的背景颜色不,当我删除改变REM线在上面的例子中,以设定的背景色。

如何使用 LibreOffice 中的函数设置单元格的背景颜色?

(我阅读了关于使用“样式”的内容,但没有进一步研究这个,因为我需要设置许多不同的背景颜色并且不想制作许多不同的样式。可以在不使用样式的情况下手动更改背景颜色,所以我认为可以以编程方式执行相同的操作。)

macros spreadsheet background-color libreoffice libreoffice-basic

6
推荐指数
1
解决办法
1万
查看次数

如何在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属性?
REM  *****  BASIC  *****
Option Explicit


' PrintArray displays a MsgBox with the whole array
' for DEBUG purposes only
Sub subPrintArray(sTitle as String, theArray() as String)
    Dim sArray
    sArray = sTitle & ":" & Chr(13) & …
Run Code Online (Sandbox Code Playgroud)

hyperlink openoffice-basic libreoffice-basic libreoffice-writer

5
推荐指数
1
解决办法
161
查看次数

功能访问单元格范围

我没有找到如何使用函数的单元格范围.

我徒劳地搜索了一些例子.

我写了以下测试.我在两个"for"行中得到"Object variable not set"错误(一个没有"RangeAddress",第二个是它,因为我不确定正确的语法):

function CHECKBZRANGE(cellRange) as integer
    dim nCol as integer
    dim nLine as integer
    dim i as integer

    for nCol = cellRange.StartColumn to cellRange.EndColumn
        for nLine = cellRange.RangeAddress.StartRow to cellRange.RangeAddress.EndRow
            i = i + 1      ' placeholder for some computation
        next nLine
    next nCol
    checkBZ_range = i
end function
Run Code Online (Sandbox Code Playgroud)

使用像这样的单元格调用此函数 =CHECKBZRANGE(A6:C9)

有人可以解释如何使用参数传递的单元格区域吗?

libreoffice-basic libreoffice-calc

4
推荐指数
1
解决办法
2461
查看次数

Libreoffice calc:循环遍历单元格宏

我一直在搜索很多,但很难找到关于LibreOffice Basic的信息

我有点习惯在Excel中编程宏,但这次需要做一个循环,直到我到达第一个空列,它需要在libreoffice中.

在excel我会做这样的事情:

Dim i As integer

i = 0
Range("A1").Select
While cell.Offset(0, i).Value <> Null
    i = i + 1
Wend
MsgBox ("First empty column is " & Chr(i + 64))
Run Code Online (Sandbox Code Playgroud)

但在libreoffice我不知道.

谁能帮我.

谢谢,布鲁诺

macros libreoffice libreoffice-basic libreoffice-calc

3
推荐指数
1
解决办法
2万
查看次数

在 libreoffice calc 宏中使用正则表达式从单元格中的括号中提取文本

在 Ubuntu 12.04 上使用 Libreoffice 3.5.7.2。

我的计算单元格中的文本格式为:(IBM) Ibm Corporation。

我正在尝试使用正则表达式使用基本宏提取 () 之间的文本。这是我到目前为止所尝试过的。

Sub getMktValue()
  Dim oDoc as Object
  Dim oSheet as Object
  Dim oCell as Object

  oDoc = ThisComponent
  oSheet = oDoc.Sheets.getByName("Income")
  'regex test code'
  oCell = oSheet.getCellByPosition(0, 1)
  stk = oCell.String()  
  myRegex = oCell.createSearchDescriptor
  myRegex.SearchRegularExpression = True
  myRegex.SearchString = "\((.*)\)"  '"[\([A-Z]\)]" "\(([^)]*)\)" "\(([^)]+)\)"'
  found = oCell.FindFirst(myRegex)
  MsgBox found.String
End Sub
Run Code Online (Sandbox Code Playgroud)

myRegex.SearchString 行包含我尝试过的各种版本。结果总是一样的。返回单元格的全部内容,而不仅仅是 () 之间的文本。有没有办法只提取 () 之间的文本?

谢谢,吉姆

regex macros libreoffice-basic libreoffice-calc

3
推荐指数
1
解决办法
7061
查看次数

为什么当从 word doc 或 docx 导入 o​​dt 文件时,LibreOffice 在方程中创建反问号

我在 .docx 文件中有方程式是

在此输入图像描述

当我将Word文件保存到.odt时,这个方程变成

在此输入图像描述

怎样才能避免这个反问号呢?

odt libreoffice libreoffice-basic

3
推荐指数
1
解决办法
2477
查看次数

[Libre | Open] Office中当前文档的路径

如何确定OpenOffice或LibreOffice文档中当前打开的文档的路径?我想将路径转发到外部应用程序.

更具体地说,我希望在全屏模式下通过视频文件启动外部播放器:

Shell("/usr/bin/mplayer", 2, """ -fs"" some-file-in-same-dir-as-document.mp4")
Run Code Online (Sandbox Code Playgroud)

对于最后一个参数,我需要到当前打开的文档的路径才能追加它.不指定路径导致引用当前路径(由CurDir()函数给出),这是不同的.

LibreOffice宏实际上有一个很好的参考吗?我发现的唯一相对较好(但难以搜索)的文档是Andrew Pitonyak的" OpenOffice Macros Explained ".

macros libreoffice libreoffice-basic

2
推荐指数
2
解决办法
1万
查看次数

如何使用 libreoffice 基本宏进行 http 请求

我想在 LibreOffice 电子表格上编写一个宏,以向 Web URL 发送 HTTP 请求并接收类似 JSON 的响应。我可以使用 LibreOffice 基本宏编程来做到这一点吗?我在哪里可以获得有关 API 的信息。

我真的很感激任何提示。

谢谢

httprequest libreoffice-basic

2
推荐指数
1
解决办法
4481
查看次数