vba Сумиф с переменными и R1C1 - PullRequest
1 голос
/ 16 января 2020

Я пытаюсь запустить приведенный ниже код, и он дает мне

Ошибка времени выполнения "1004"

Ошибка приложения или объекта * Ошибка 1006 *

Каждый раз !!

Прилагается фрагмент кода, любые предложения, что не так? (Числа в секциях Range(Cells( * ) на самом деле в основном являются переменными в моем общем макросе, они довольно сложные, но я их здесь для простоты вычеркнул)

Код:

'Declare variables
Dim CriteriaRng As String
Dim SumRng As String
Dim Criteria As String

'Set a variable for each of the 3 parts of the SUMIF Formula
CriteriaRng = "'" & Sheets(1).Name & "'!" & Range(Cells(2, 4), Cells(88, 4)).Address
SumRng = "'" & Sheets(1).Name & "'!" & Range(Cells(2, 3), Cells(88, 3)).Address
Criteria = Chr(34) & "=" & Chr(34) & " & RC[-1]"


'Here goes the SUMIF Formula
    With Sheets(2).Range(Cells(4, 13), Cells(9, 13))
        Debug.Print "So the Whole Formula Should be:" & Chr(13) & "= SUMIF(" & CriteriaRng & ", " & Criteria & ", " & SumRng & ")"
'That was a vain attempt to find out what was wrong with the formula; didn't work though.
        .FormulaR1C1 = "= SUMIF(" & CriteriaRng & ", " & Criteria & "," & SumRng & ")"

'Then adds NumberFormat and stuff here, but that isn't relevant to this question.
    End With

Ошибка всегда попадает в строку, где она помещает .FormulaR1C1 =.

Да, я знаю, что могу получить тот же результат, используя вложенный l oop, но это вернет только значение без формулы SUMIF - Мне нужна эта формула, чтобы лист обновлялся при редактировании (без макроса - я отправляю лист другим людям, которые не хотят или не хотят никаких макросов, но могут нуждаться в редактировании данных).

Может кто-нибудь указать мне, что не так? Я готов к тому, чтобы это было чем-то довольно приятным c - только на прошлой неделе я потратил 2 часа на то, чтобы выяснить проблему из-за неправильного написания 'Колонок' !!!

Любой и все советы приветствуются - большое спасибо заранее .

...