2

我有大型电子表格,根据没有规则的规则对行进行着色,因此单元格颜色无法由单元格条目确定。我想查找单元格颜色并将其用作值。

电子表格是这样的:

----------
data|data| <-- background row color red
----------
data|data| <-- background row color blue
----------
data|data| <-- background row color yellow
----------

我想创建一个新列来报告单元格背景颜色,例如“RED”或“EE0000”。Excel/Gnumeric/LO Calc 都有一个名为cell“color”的信息查找函数,它似乎只能判断单元格是否着色:

cell("color", A2)

返回 0 或 1。

那么如何在 Gnumeric 或 LO Calc 中获取单元格背景颜色?

4

1 回答 1

5

在 LibreOffice Calc 中:

  1. 转到工具 > 宏 > 组织宏 > LibreOffice Basic >
    我的宏 > 标准 > 模块 1

  2. 选择“主要”,然后单击“编辑”。

  3. 它将包含空的 3 行模板:

    REM  *****  BASIC  *****
    
    Sub Main
    
    End Sub
    

    在模板之后添加:

    Function bgcolor(c,r)
      Dim oDoc  As Object   ' define variables
      Dim oSheet As Object
      Dim oCell As Object
      oDoc  = ThisComponent
      oSheet= oDoc.getSheets().getByIndex(0)
      oCell = oSheet.getCellByPosition(c-1,r-1)
      bgcolor = oCell.CellBackColor
    End Function
    

    您应该在编辑器中看到与此类似的内容:

    LibreOffice Calc 中的 BGColor 宏

  4. 关闭管理器,现在您可以像使用任何其他功能一样使用该功能:

例子:

bgcolor(3,1)
bgcolor(3, CELL("Row",A1))
bgcolor(CELL("COL", A1), CELL("ROW", A1))
于 2012-10-04T02:50:37.417 回答