我使用的是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
我通过将=BGCOLOR()
输入单元格来执行该功能。存在该公式的单元格将按预期返回工作表1上第一个单元格(0,0)
或A1
的颜色值。
但是,我无法获得更改单元格A1
的背景颜色的功能。当我将上面示例中的REM
行移除到设置背景颜色时,单元格背景颜色会不更改。
如何使用LibreOffice中的函数设置单元格的背景颜色?
(我读过关于使用“样式”的内容,但是我没有进一步看这个,因为我需要设置许多不同的背景颜色,并且不想制作许多不同的样式。可以手动更改背景颜色而不使用样式,所以我认为可以通过编程方式进行相同的操作。)
答案 0 :(得分:2)
首先,您的宏一般没有任何问题。如上所述,设置CellBackColor的单行是正确的。问题是从您尝试修改的工作表调用该函数。不允许函数修改调用它的工作表。因此,如果从工作表1调用函数,然后尝试更改工作表1中单元格的背景颜色,则会失败。但是,如果您在从工作表1调用时尝试更改工作表0上单元格的背景颜色,则该工作将按预期工作。
答案 1 :(得分:0)
Cell.BackColor = RGB(50,60,70) should do the trick
编辑:这只适用于lowriter。谢谢广告。
答案 2 :(得分:0)
该行应
cell.cellbackcolor = RGB(50,60,70)
(当然没有“REM”,只创建了注释行)
如果您只有一张表,请考虑表格的参数 0 而不是1
有关其他有趣的属性,请参阅cell properties