Проблема с совместимостью VBA в libre office calc
Всем привет,
У меня есть книга Excel с макросами VBA, с ней нет никаких проблем в Excel.
Когда я пытаюсь открыть его на LO Calc, у меня возникает много проблем с совместимостью, я исправил их все, кроме 1.
Я исправил такие проблемы, как условная компиляция (#If ... #End If) несовместимость.
Я использую Libre Office 6.3 Calc.
Я получил 1 оставшуюся ошибку в этом коде:
Function Extract(Chaine, Optional Pos = 1, Optional Balise) If IsNumeric(Chaine) Then ' c'est numerique, on retourne la valeur Extract = Chaine Exit Function End If Set re = CreateObject("VBScript.RegExp") re.Global = True If IsMissing(Balise) Then ' pas de balise, on cherche les valeurs numeriques re.pattern = "[0-9,.]+" Set A = re.Execute(Chaine) ' Error here If A.Count >= Pos Then Extract = val(Replace(A(Pos - 1), ",", ".")) Else ' la balise sert de séparateur re.pattern = Balise B = Strings.Split(re.Replace(Chaine, vbNullChar), vbNullChar) If B.Count >= Pos Then Extract = val(Replace(B(Pos - 1), ",", ".")) End If End Function
сообщение об ошибке:
Erreur d'exécution BASIC. '1' Type: com.sun.star.script.CannotConvertException Message: [automation bridge]UnoConversionUtilities<T>::anyToVariant Cannot convert the value of type :"com.sun.star.uno.XInterface" to the expected Automation type of VARTYPE: 8
То
execute
предполагается вернуть коллекцию объекта.Использование:
A1= "100x10x150"
A2= экстракт(A1) => 100
A3= экстракт(A1,2) => 10
A4= экстракт(A1,3) => 150
Что я уже пробовал:
Этот код отлично работает в Excel, но не компилируется в Calc.
Что я пропустил?