У меня есть таблица, из которой я пытаюсь получить данные по нескольким критериям.Я использую Index Match для этого.Если я вручную вставлю формулу в Excel, она будет работать в обоих случаях:
Сначала я ввел формулу массива, используя полный диапазон столбцов из необработанной таблицы в формуле соответствия индекса
Selection.FormulaArray = _
"=IF(ISNA((INDEX(Data!C2:C8,MATCH(1,(Data!C2=RC2)*(Data!C3=RC3)*(Data!C4=R3C)*(Data!C5=R4C),0),4))),""F"",(INDEX(Data!C2:C8,MATCH(1,(Data!C2=RC2)*(Data!C3=RC3)*(Data!C4=R3C)*(Data!C5=R4C),0),4)=R4C))"
* 1005.* Это работает, но очень медленно работает с большими данными.Поэтому я изменил формулу для определенного диапазона из таблицы, например, 30000 строк.Это работает, когда я ввожу его вручную в Excel со ссылками на строки и столбцы, это также значительно сокращает время обработки.Но выдает ошибку, когда я пытаюсь использовать его через код в VBA, используя стиль R1C1.Ниже приведен пример кода с диапазоном для 40000 строк
Selection.FormulaArray = _
"=IF(ISNA((INDEX(Data!R2C2:R40000C8,MATCH(1,(Data!R2C2:R40000C2=R[-1]C2)*(Data!R2C3:R40000C3=R[-1]C3)*(Data!R2C4:R40000C4=R3C)*(Data!R2C5:R40000C5=R4C),0),4))),""F"",(INDEX(Data!R2C2:R40000C8,MATCH(1,(Data!R2C2:R40000C2=R[-1]C2)*(Data!R2C3:R40000C3=R[-1]C3)*(Data!R2C4:R40000C4=R3C)*(Data!R2C5:R40000C5=R4C),0),4)=R4C))"
. Показана ошибка:
"Ошибка времени выполнения 1004. Невозможно установить свойство массива формул для диапазонакласс. "
Мне кажется, что ошибка связана со стилем синтаксиса того, как он должен быть введен.Заранее спасибо за поддержку