Запись в Range.FormulaArray дает мне #NAME! ошибка

Ничего особенного здесь нет, хотя мне нужно разделить формулу на 2, потому что она длиннее 255 символов (источники:http://www.dicks-blog.com/archives/2005/01/10/entering-long-array-formulas-in-vba/ http://support.microsoft.com/kb/213181).

    f1 = "=SI(1=1,SOMME(SI(mySheet!$R:$R = ""something"",SI(mySheet!$AQ:$AQ = AM$1, NBCAR(Incidents!$AP:$AP)-NBCAR(SUBSTITUE(mySheet!$AP:$AP,$B2,"""")))))/NBCAR($B2)-X_X_X())"
    f2 = "SOMME(SI(mySheet!$R:$R = """",SI(mySheet!$AQ:$AQ = AM$1, SI(mySheet!$AM:$AM = $A2,SI(DROITE(mySheet!$AP:$AP,6) = $B2,1))))),"""""
    .Range("AM2").FormulaArray = f1
    .Range("AM2").Replace "X_X_X()", f2

Формулы на французском языке, что не должно иметь большого значения. Формула правильно возвращается в ячейку AM2, поэтому вот результат:

={SOMME(SI(1=1;SI(mySheet!$R:$R = "something";SI(mySheet!$AQ:$AQ = AM$1; NBCAR(mySheet!$AP:$AP)-NBCAR(SUBSTITUE(mySheet!$AP:$AP;$B2;"")))))/NBCAR($B2)-SOMME(SI(mySheet!$R:$R = "something";SI(mySheet!$AQ:$AQ = AM$1; SI(mySheet!$AM:$AM = $A2;SI(DROITE(mySheet!$AP:$AP;6) = $B2;1)))));"")}

Тем не менее, я получаю #NAME! ошибка. Если я посмотрю в формулу отладки, ошибка исходит из моей первой функции, Excel не может интерпретироватьSI() (который является французским дляIF()). Я пытался полностью удалить этоIF() предложение, но тогда Excel не может интерпретировать первую функцию, которая сейчасSOMME() (SUM()).

Если я просто нажму на панель формул и нажму CTRL + Shift + Enter (ничего не меняя), он вернёт правильное значение.

Почему Excel не дает мне правильное число после того, как VBA устанавливает формулу массива? Почему это работает, если я простоповторно формула в Excel? И почему всегда возникают проблемы с первой функцией? Я предполагаю, что есть какое-то другое ограничение, о котором я не знаю.

Я обнаружил еще одну похожую проблему при просмотре веб-страниц, но не нашел решения.

Ответы на вопрос(1)

Ваш ответ на вопрос