15a97bcaf1
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
|
||
---|---|---|
.. | ||
genconstidl | ||
ooo/vba | ||
Makefile | ||
Module_oovbaapi.mk | ||
README.md | ||
UnoApi_oovbaapi.mk |
Visual Basic Interoperability
Visual Basic interoperability module for LibreOffice