A solução a seguir é um tanto estranha porque requer uma folha separada, como explicado no comentário do @ tohuwawohu.
Primeiro, vá para Tools -> Macros -> Organize Macros -> LibreOffice Basic
e adicione a seguinte função definida pelo usuário em algum lugar nas macros Padrão.
Function BGCOLOR(rgb_array, address)
Dim red, green, blue As Integer
Dim positionOfMatch As Integer
Dim sheet_name, cell_name As String
Dim oSheet, oCell As Object
red = rgb_array(1, 1)
green = rgb_array(1, 2)
blue = rgb_array(1, 3)
positionOfMatch = InStr(address, ".")
sheet_name = Mid(address, 2, positionOfMatch - 2) 'start after initial $
cell_name = Right(address, Len(address) - positionOfMatch)
oSheet = ThisComponent.getSheets().getByName(sheet_name)
oCell = oSheet.getCellRangeByName(cell_name)
oCell.CellBackColor = RGB(red, green, blue)
BGCOLOR="BG Color for " & address
End Function
Depois, como exemplo, inicie uma nova planilha do Calc e digite =RANDBETWEEN(0,255)
em A1. Arraste e preencha esta fórmula até C10.
Em seguida, adicione uma nova planilha. Digite na célula A1 da nova planilha:
=BGCOLOR($Sheet1.A1:C1, CELL("ADDRESS", $Sheet1.D1))
Esses endereços também podem ser inseridos automaticamente clicando na fórmula, indo até essa folha e selecionando o intervalo ou a célula. No entanto, BGCOLOR
pode tentar executar enquanto você ainda está editando a fórmula, o que pode ser irritante.
Por fim, arraste a fórmula para A10. Aqui está um exemplo de como a folha 1 parece como resultado.
Umaperguntasemelhantefoifeitaem