в моем коде Мне нужно умножить массивы: один с флагами (массив «minDiffsArr» с несколькими столбцами на «1» в необходимых местах), а другой - это столбец, где мне нужно проверить мое состояние (только строки с определенным значением в переменной "U")VBA: Оцените sumproduct с массивом и переменной
массив minDiffsArr выглядит следующим образом:
1
1
1
1
1
1
1
1
... и так далее
в то время как диапазон ("T3: T37 ") выглядит как
8
4
6
4
9
1
5
8
и переменная «и» имеет значения от 1 до 10
Стараюсь код:
sheets(2).cells(1, 1) = Evaluate("=SUMPRODUCT(--(" & sheets(1).Range("T3:T" & linesNum + 2).Value & "=" & u & ")," & wsf.Index(minDiffsArr, 0, i) & ")")
однако, не в состоянии на тип ошибки рассогласования
, когда я добавляю смотреть в мой код , он говорит, что оба массива являются вариантами и одного и того же размера (от 1 до 35), поэтому я не могу понять, что не так с формулой
Вы не можете просто объединить массивы в строку формулы, подобную этой. – Rory
Не могли бы вы сказать, что именно не так, что и почему я не могу конкатенатировать в формуле? И каково возможное решение моих потребностей? – Shurov
Вы просто не можете конкатенировать массив и строку - это не имеет смысла. Решение будет зависеть от того, как объявляются 'u' и' minDiffsArr'. В частности, является 'u' 1-мерным массивом? – Rory