excel-vba Ошибка времени выполнения '1004'

Ниже мой код

Range("M2").Select Selection.FormulaArray = _ "=IF(AND(RC8<=R1C,RC9>=EOMONTH(R1C,0)),INDEX(Planned!R2C:R100C,MATCH(1,(RC3=Planned!R2C3:R100C3)*(RC10=Planned!R2C10:R100C10)*(RC12=Planned!R2C12:R100C12),0)),ROUND((MAX(R1C[1]-MAX(RC8,R1C),0)-MAX(R1C[1]-MAX(RC9,R1C),0))*INDEX(Planned!R2C:R100C,MATCH(1,(RC3=Planned!R2C3:R100C3)*(RC10=Planned!R2C10:R100C10)*(RC12=Planned!R2C12:R100C12),0))/DAY(EOMONTH(R1C,0)),0))" 

Когда я пытаюсь запустить макрос, он дает мне ошибку ниже

введите описание изображения здесь

Любые мысли по этому поводу?

Можете ли вы сохранить части формулы в переменных? А затем вызовите переменные в массиве формул? Сохранить символы? Так просто разделите уравнение.

Так, например:

 var1 = DAY(EOMONTH(R1C,0)) 

а затем замените его в формуле. Сделайте это для нескольких частей, которые легко заменить переменной.

Не зная, какие данные у вас есть в разных полях, работает ли следующая работа?

 ActiveSheet.Range("M2").Activate With Selection Selection.FormulaArray = _ "=IF(AND(RC8<=R1C,RC9>=EOMONTH(R1C,0)),INDEX(Planned!R2C:R100C,MATCH(1, (RC3=Planned!R2C3:R100C3)*(RC10=Planned!R2C10:R100C10)* (RC12=Planned!R2C12:R100C12),0)),ROUND((MAX(R1C[1]-MAX(RC8,R1C),0)- MAX(R1C[1]-MAX(RC9,R1C),0))*INDEX(Planned!R2C:R100C,MATCH(1, (RC3=Planned!R2C3:R100C3)*(RC10=Planned!R2C10:R100C10)* (RC12=Planned!R2C12:R100C12),0))/DAY(EOMONTH(R1C,0)),0))" End With 

измените с помощью этого: (Метод SendKeys имитирует нажатия клавиш, которые вы вручную вводите в активное окно)

 Range("M2").Select Selection.Formula = _ "=IF(AND(RC8<=R1C,RC9>=EOMONTH(R1C,0)),INDEX(Planned!R2C:R100C,MATCH(1,(RC3=Planned!R2C3:R100C3)*(RC10=Planned!R2C10:R100C10)*(RC12=Planned!R2C12:R100C12),0)),ROUND((MAX(R1C[1]-MAX(RC8,R1C),0)-MAX(R1C[1]-MAX(RC9,R1C),0))*INDEX(Planned!R2C:R100C,MATCH(1,(RC3=Planned!R2C3:R100C3)*(RC10=Planned!R2C10:R100C10)*(RC12=Planned!R2C12:R100C12),0))/DAY(EOMONTH(R1C,0)),0))" SendKeys "{F2}" SendKeys "^+{ENTER}" 
Давайте будем гением компьютера.