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

bu kodda "J: J" konumundan "U: U" a kadar olan Aralığı ("J: J") azaltmaya çalışıyorum. Ben Cells ile çalıştı:excel vba, bir aralıkta

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

ve ben de Range(Chr(Asc("J")+1) ile denedim bir hata

aldık. o sorunu ancak VBA bir İçin-Loop için Syntax'i çözmek eğer

cevap

0

bir yolu, sizin sözdizimi tutarak Range("J:J")Columns(i) için

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 
değiştirmektir
+0

çok teşekkür ederim, aradığım şey – user3569647

0

Bilmiyor geçerli:

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

Next 
+0

´Teşekkürler, ama sadece aralığı arttırmak için bir Sorunum var, Benim For-Loop doğru çalışıyor – user3569647

+0

Sonra "J: J" gibi bir aralık için harf kullanmamaya çalışın, bunun yerine "yx-koordinatlarını" kullanabilirsiniz. for döngüsü dışında bu hücrenin sütun ve satır dizini için iki değişken temsilcisini bildirirsiniz. Ve döngüde bunları kullanmadan önce/sonra artırırsınız. Belki de hata probleminizi bulmamda bana yardımcı olabilir. – flohdieter

+0

Eğer – user3569647