Estou tentando atribuir uma fórmula a uma célula através de macro.
Porém, apesar da fórmula aparecer corretamente na célula, o Calc interpreta como string, retornando o erro “#NOME?”. Se apago qualquer caractere manualmente na célula e o reinsiro e em seguida aperto enter, ele interpreta como fórmula e retorna o resultado almejado.
Segue planilha:
AskLibreOffice_FórmulaRetornaNOME.ods
Segue macro adaptada:
Sub AskLibreOffice
Dim Doc As Object
Dim Sheet As Object
Doc = ThisComponent
Sheet = Doc.Sheets.getByName("Sheet1")
rem n, j e MyArray são resultados de outras macros
Dim n As Integer
Dim j As Integer
n = 2
Dim MyArray(n) As String
MyArray(0) = "String0"
MyArray(1) = "String1"
MyArray(2) = "String2"
For j = 0 to n
Sheet.getCellByPosition(0, j).setString(MyArray(j))
formula = "=PROCV(C" & j+1 & ";C1:D3;2;0)"
Sheet.getCellByPosition(0, j).setFormula(formula)
Next j
End Sub
Versão: 6.4.0.3 (x64)
ID de compilação: b0a288ab3d2d4774cb44b62f04d5d28733ac6df8
Threads da CPU: 4; SO: Windows 10.0 Build 18362; Realizador da interface: padrão; VCL: win;
Local: pt-BR (pt_BR); Idioma de IU: pt-BR
Calc: threaded