2016-04-12 50 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