FormulaArray Proroduction Runtime 1004 Ошибка - PullRequest
1 голос
/ 17 февраля 2020

Я пытаюсь запустить следующую процедуру, которая влечет за собой размещение формулы массива в диапазоне («CA2010») на листе («Slate Data»).

Я протестировал формулу массива много раз, и это приводит к желаемым результатам.

Подпрограмма ниже получает

во время выполнения '1004' ошибка: невозможно установить свойство FormulaArray класса Range.

Sub countuniqueBINs()

Dim placementoutlook As Workbook
Set placementoutlook = Excel.Workbooks("Placement Outlook")
Dim sdws As Worksheet
Set sdws = placementoutlook.Sheets("Slate Data")

sdws.Range("CA2010").NumberFormat = "general"
sdws.Range("CA2010").FormulaArray = "=SUM(IF(FREQUENCY(IF(SUBTOTAL(3,OFFSET(E2:E2000,ROW(E2:E2000)-ROW(E2),0,1)),MATCH(""~""&E2:E2000,E2:E2000&"""",0)),ROW(E2:E2000)-ROW(E2)+1),1))"

End Sub

Я пытался разбить формулу массива на две части, основываясь на некоторых рекомендациях, но это все равно не решило проблему.

1 Ответ

1 голос
/ 18 февраля 2020

Причина ошибки в том, что версия вашей формулы в формате R1C1 превышает 255 символов (хотя версия в стиле A1 намного короче этой) из-за относительных ссылок. Если вы используете абсолютные ссылки, формула достаточно короткая, чтобы ее можно было ввести с помощью FormulaArray; если вы не можете этого сделать, вам придется использовать обходной путь разбиения формулы на разделы, чтобы можно было использовать метод Range.Replace после ввода более короткой версии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...