diff options
author | Eike Rathke <erack@redhat.com> | 2021-04-09 13:19:37 +0200 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2021-04-09 16:27:09 +0200 |
commit | 15a97bcaf17f0f3bc64efd1239c365868480ec43 (patch) | |
tree | 3bbd89f9ff65a689cb33d724d45f027dcb3a2f37 /oovbaapi | |
parent | 9940630266686d306fc2bc0ac3c20231f7f3d532 (diff) |
[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 d0b4719ca3d4608bcb7431dbeb097146dd5a5127
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
Diffstat (limited to 'oovbaapi')
-rw-r--r-- | oovbaapi/ooo/vba/excel/XRange.idl | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/oovbaapi/ooo/vba/excel/XRange.idl b/oovbaapi/ooo/vba/excel/XRange.idl index 8630b87241ba..32f75a309795 100644 --- a/oovbaapi/ooo/vba/excel/XRange.idl +++ b/oovbaapi/ooo/vba/excel/XRange.idl @@ -59,6 +59,8 @@ interface XRange [attribute] any Formula; [attribute] any FormulaArray; [attribute] any FormulaR1C1; + [attribute] any FormulaLocal; + [attribute] any FormulaR1C1Local; [attribute, readonly] long Count; [attribute, readonly] long Row; [attribute, readonly] long Column; |