我正在尝试在LibreOffice Calc中测试一些算法,我想在所有单元格/表格中看到一些全局变量.我搜索了互联网,我看到的所有帖子都是如此神秘和冗长!
我很感激如果你能给我简单的noob说明(1 2 3 ...)我该怎么做.
我正在使用 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
我正在为LibreOffice Writer创建一个Basic宏来检查内部链接是否损坏.简而言之:
我的代码有一些未解决的问题:
fnBuildAnchorList)我们如何获得每个标题的编号?例如,如果第一个1级标题文本是"简介",则正确的锚是#1.Introduction|outline我们正在录制的Introduction|outlinesubInspectLink)我们如何正确测试标题的超链接?我注意到,当我手动跟踪指向标题的链接时,它会在编号相同时成功,但也会在文本相同时成功.#1.My first heading|outline,可以使用超链接到达,#1.Previous header name|outline 也可以使用超链接#2.3.5.My first heading|outlinesubInspectLink)我们如何打开特定的超链接进行编辑?我们传递参数.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
我没有找到如何使用函数的单元格范围.
我徒劳地搜索了一些例子.
我写了以下测试.我在两个"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的信息
我有点习惯在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我不知道.
谁能帮我.
谢谢,布鲁诺
在 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 行包含我尝试过的各种版本。结果总是一样的。返回单元格的全部内容,而不仅仅是 () 之间的文本。有没有办法只提取 () 之间的文本?
谢谢,吉姆
如何确定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 ".
我想在 LibreOffice 电子表格上编写一个宏,以向 Web URL 发送 HTTP 请求并接收类似 JSON 的响应。我可以使用 LibreOffice 基本宏编程来做到这一点吗?我在哪里可以获得有关 API 的信息。
我真的很感激任何提示。
谢谢