2013-05-31 7 views
3

Я пытаюсь выполнить расчет SUMIFS в VBA. Он отлично работает, когда я ввожу его в электронную таблицу, но когда я пытаюсь преобразовать его в VBA, он не работает.преобразование формулы excel sumifs в код vba

Sheets("Master").Range("B2:B" & Range("A" & Rows.Count).End(xlUp).Row).Formula = _ 
    "=SUMIFS(Input!C32,Input!C37,Master!C1,Input!C31,Master!R1C)" 

Это фрагмент кода (первоначально в комментарии):

Dim LastRow As Long 
Dim rw As Long 
LastRow = Range("A" & Rows.Count).End(xlUp).Row 
For rw = 2 To LastRow 
    Sheets("Master").Cells(rw, 2).Value = Application.WorksheetFunction.SumIfs(Sheets("Input").Range("AF:AF"), Sheets("Input").Range("AK:AK"), Sheets("Master").Range("A:A"), Sheets("Input").Range("AE:AE").Sheets("Master").Range("B2")) 
Next 
+3

Ищите, и вы [НАЙДИТЕ] (http://stackoverflow.com/search?q=vba+sumifs) –

+0

Что, по-видимому, не работает? –

+0

я пытаюсь запустить этот код Dim LastRow As Long Dim Rw As Long LastRow = Range ("A" & Rows.Count) .END (xlUp) .Row Для Rw = 2 Для LastRow Листы («Мастер»). Ячейки (rw, 2) .Value = Application.WorksheetFunction.SumIfs (Листы («Вход»). Диапазон («AF: AF»), Листы («Вход»). Диапазон («AK : «AK»), «Листы» («Мастер»). Диапазон («A: A»), Листы («Вход»). Диапазон («AE: AE»). Листы («Мастер»). Диапазон («B2»)) Следующий – user2440270

ответ

1

Вы не указываете значения, которые вы хотите для поиска в вашем факторам1. Вы должны указать значение, а не диапазон.

Ваша сумма в порядке.

Sheets("Input").Range("AF:AF") 

Ваш диапазон критериев1 в порядке.

Sheets("Input").Range("AK:AK") 

Ваши критерии1 должны быть значением, а не диапазоном.

Используйте этот Sheets("Master").Range("A2").value вместо Sheets("Master").Range("A:A")

Очевидно, что вы можете заменить 2 в факторам1 с переменной, если вам нужно, чтобы получить цикл работы.

+0

Спасибо за помощь – user2440270

+0

Решила ли ваша проблема? –

+0

да Большое спасибо – user2440270

Смежные вопросы