【发布时间】:2018-09-04 11:41:42
【问题描述】:
我想使用 LibreOffice Basic 宏计算选择中黄色、橙色、绿色和红色的出现次数。我去过this Stackoverflow question,但它对我不起作用。
代码如下:
Sub Main
dim selection,cell as Object
dim i,j as integer
selection = ThisComponent.getCurrentController().getSelection()
for i=selection.RangeAddress.StartRow to selection.RangeAddress.EndRow
for j=selection.RangeAddress.StartColumn to Selection.RangeAddress.EndColumn
cell = ThisComponent.Sheets(0).getCellByPosition(i,j)
print cell.CellBackColor
rem TODO: Count colors
next
next
End Sub
它说-1,除非单元格颜色为黑色,然后它说0。我做错了什么?
【问题讨论】:
-
可能是因为
-1表示没有单元格颜色而0表示单元格颜色为黑色?您在这些单元格中尝试过其他颜色吗? -
@Pᴇʜ 是的,我尝试了不同颜色的单元格,它总是显示
-1。您可以从the documentation 获取颜色值。 -
-1表示没有单元格背景颜色。所以我问了一些(也许是转储)问题,以确保:我们是在谈论 background 颜色还是 text 颜色?您是否有可能在错误的工作表Sheets(0)上?还是错误的单元格位置?当您认为输出错误时,您检查了i和j的值吗? -
@Pᴇʜ 我们正在谈论背景颜色。是的,我也检查了位置。将
print cell.CellBackColor更改为print cstr(i) & "x" & cstr(j) & ": " & cell.CellBackColor并选择工作簿中唯一的工作表 上的绿色B16会生成15x1: 0。但这次它显示0表示非黑色单元格。这里有一股腥味……
标签: colors libreoffice libreoffice-basic