office-gobmx/oovbaapi/ooo
Eike Rathke 15a97bcaf1 [API-CHANGE] tdf#141543 VBA Range.Formula Range.FormulaR1C1 non-localized
The VBA compatibility Range.Formula and Range.FormulaR1C1
properties wrongly used localized formula expressions as if they
were Range.FormulaLocal and Range.FormulaR1C1Local. That worked in
English UI and locales, but not in translated UI or with locale
dependent different separators, imported Excel documents using
these properties failed there.

Instead, use English formula expressions and separators, and
additionally implement Range.FormulaLocal and
Range.FormulaR1C1Local for localized formula expressions.
See
https://docs.microsoft.com/en-us/office/vba/api/excel.range.formula
https://docs.microsoft.com/en-us/office/vba/api/excel.range.formular1c1
https://docs.microsoft.com/en-us/office/vba/api/excel.range.formulalocal
https://docs.microsoft.com/en-us/office/vba/api/excel.range.formular1c1local

Unfortunately this change means for macros created in LibreOffice
that relied on the erroneous beaviour in a localized environment
those macros will cease to work, the remedy in these cases is to
replace setting Formula and FormulaR1C1 attributes with
FormulaLocal and FormulaR1C1Local instead. Obtaining formulas
never worked reliably unless the document's native grammar was
very similar to the API grammar (English UI function names,
English locale and separators, address convention).

For this to work a prerequisite is

    commit d0b4719ca3
    CommitDate: Wed Apr 7 02:22:54 2021 +0200

	Related: tdf#128334 Make VBA Range getFormula(R1C1) work not only by accident

Change-Id: Ifce9ac7557b6a3703d47ee81b57dd8246f3fc3ca
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113846
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
2021-04-09 16:27:09 +02:00
..
vba