Я пытаюсь вставить формулу для Excel с помощью VBA, но она не работает. Он возвращает ошибку времени выполнения 1004. Я попробовал несколько трюков или ответы здесь, но они, похоже, не очень уместны для моего дела.ActiveCell.Formula Ошибка выполнения VBA
Вот код:
ActiveCell.Formula = "=COUNTIFS('DataSheet_B'!$C$4:$C$13268;B6;'DataSheet_B'!$M$4:$M$13268;A6;'DataSheet_B'!$J$4:$J$13268;$G$5)"
На втором этапе, я пытаюсь заменить 13268
в $C$13268
на переменную, которая изменяется динамически. Мне нужно только вставить его в формулу. Это основная причина, по которой я пытаюсь жестко закодировать формулу.
Кроме того, я использую следующую формулу:
Dim sVal As String
sVal = "13268"
ActiveCell.FormulaR1C1 = "=COUNTIFS(DataSheet_B!R4C3:R[" & sVal & "]C3,RC[-5],DataSheet_B!R4C13:R[" & sVal & " ]C13,RC[-6],DataSheet_B!R4C10:R[" & sVal & " ]C10,R5C7)"
Однако, он не возвращает второй знак доллара из $C$13268
Спасибо
использование отладчика. посмотрите, какое значение ваша динамическая переменная удерживает при ошибке выполнения. –
Я еще не на этом шаге. Я хочу, чтобы статическая формула работала первой. Я пробовал динамическую версию с другой формулой, но она отлично работала. Часть кода выше не работает. – Helios
попробуйте 'ActiveCell.Formula =" = COUNTIFS ('DataSheet_B'! $ C $ 4: $ C $ 13268, B6, 'DataSheet_B'! $ M $ 4: $ M $ 13268, A6, 'DataSheet_B'! $ J $ 4: $ J $ 13268 , $ G $ 5) "' –