Почему VBA Excel-я при переводе формулы с английского на немецткий изменяет её
От: zeevturka  
Дата: 16.02.21 08:10
Оценка: :)
Здравствуйте!

У меня есть вопрос:
Почему VBA Excel-я при переводе формулы VLOOKUP с английского на немецткий изменяет B:C на BEZUG! её?
Начальная формула:
Selection.FormulaLocal = GetLocalizedFormula("= SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(VLOOKUP($H2;translation_en_GB!B:C;2;""FALSE"");""%1"";$I2);""%2"";$J2);""%3"";$K2);""%4"";$L2)")

Функция перевода:
Function GetLocalizedFormula(formula As String)
' returns the English formula from the parameter in the local format
Dim temporary As String
temporary = Range("D1").formula
Range("D*").formula = formula
Dim result As String
result = Range("D*").FormulaLocal
Range("D*").formula = temporary
GetLocalizedFormula = result
End Function

После перевода:
= WECHSELN(WECHSELN(WECHSELN(WECHSELN(SVERWEIS($H2;translation_en_GB!#BEZUG!;2;"FALSCH");"%1";$I2);"%2";$J2);"%3";$K2);"%4";$L2)

Если я меняю вручную #BEZUG! на B:C, то работает так как надо.

Как это исправить?
Re: Почему VBA Excel-я при переводе формулы с английского на немецткий изменяет
От: kov_serg Россия  
Дата: 16.02.21 09:15
Оценка:
Здравствуйте, zeevturka, Вы писали:

Z>Как это исправить?


Так пробывали?
Re[2]: Почему VBA Excel-я при переводе формулы с английского на немецткий изменя
От: zeevturka  
Дата: 16.02.21 09:26
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>Здравствуйте, zeevturka, Вы писали:


Z>>Как это исправить?


_>Так пробывали?


Да, так пробывал. Ето второй вариант с сайта Stackoverflow. Он тоже не работает.
Ещё пробовал поставить $ перед В и С. Первая строчка работала, остальные — нет
Re: Почему VBA Excel-я при переводе формулы с английского на немецткий изменяет
От: kov_serg Россия  
Дата: 16.02.21 11:54
Оценка: 6 (1)
Здравствуйте, zeevturka, Вы писали:


Z>Начальная формула:

Z>Selection.FormulaLocal = GetLocalizedFormula("= SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(VLOOKUP($H2;translation_en_GB!B:C;2;""FALSE"");""%1"";$I2);""%2"";$J2);""%3"";$K2);""%4"";$L2)")


Z>Если я меняю вручную #BEZUG! на B:C, то работает так как надо.


Z>Как это исправить?

Конкретно в вашем случае попробуйте заменить ; на ,
Возможно еще добавить отключение всяких запросов со стороны экселя

Application.DisplayAlerts = False
...
Application.DisplayAlerts = True


https://i.imgur.com/Cbux0QJ.png
Re[2]: Почему VBA Excel-я при переводе формулы с английского на немецткий изменя
От: zeevturka  
Дата: 17.02.21 17:35
Оценка:
Здравствуйте, kov_serg,

Огромное Вам Спасибо! Функционирует!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.