2016-04-12 198 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遞增範圍

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循環VBA不知道的是:

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

Next 
+0

'謝謝,但我有一個問題只是爲了增加範圍,我的For-Loop工作正常 – user3569647

+0

然後儘量不要使用像「J:J」這樣的範圍的字母,而是使用「yx座標」。在for循環之外,您聲明兩個變量代表該單元格的列和行索引。在for循環中,您可以在使用它們之前/之後增加它們。也許這個錯誤可以幫助我找到你的問題。 – flohdieter

+0

可以給我一個例子PLS – user3569647