2016-04-12 2 views
1
For i = 10 to 21 

    c = WorksheetFunction.SumIfs(Worksheets("Input").Range("J:J"), Worksheets("Input").Range("A:A"), "Sales ValueExternal", Worksheets("Input").Range("H:H"), "Europe") 

Next i 

В этом коде я хочу увеличить диапазон («J: J») от «J: J» до «U: U». Я попробовал его с Cells:excel vba приращение a

c = WorksheetFunction.SumIfs(Worksheets("Input").Cells(1, i), Worksheets("Input").Range("A:A"), "Sales ValueExternal", Worksheets("Input").Range("H:H"), "Europe") 

и я получил ошибку

Я попробовал его с Range(Chr(Asc("J")+1) тоже.

ответ

0

Один из способов, сохраняя свой синтаксис, было бы изменить Range("J:J") к Columns(i)

For i = 10 to 21 

    c = WorksheetFunction.SumIfs(Worksheets("Input").Columns(i), Worksheets("Input").Range("A:A"), "Sales ValueExternal", Worksheets("Input").Range("H:H"), "Europe") 

Next i 
+0

большое спасибо, вот что я искал – user3569647

0

Не знаю, если это решить вашу проблему, но и синтаксис для For-Loop в VBA является:

Dim i as Integer 
For i=0 To 20 Step 1 

Next 
+0

«Спасибо, но у меня есть проблема только для увеличения диапазона, My For-Loop работает правильно – user3569647

+0

Тогда попробуйте не использовать буквы для диапазона, например« J: J », вместо этого вы можете использовать« yx-координат ». из цикла for вы объявляете две переменные, представляющие индекс столбца и строки этой ячейки. И в цикле for вы увеличиваете их до/после использования. Возможно, ошибка может помочь мне найти вашу проблему. – flohdieter

+0

вы можете дать мне пример Pls – user3569647

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