为每个循环在excelmacrosvba跳跃交替行
我在vba下面的代码。 sheet5中列a5至a20中的行是:
A5 =瑞典
A6 =西class牙
A7 =俄罗斯
A8 =意大利
A9 =德国
A10 =芬兰
A11 =挪威
A12 =瑞士
A13 =法国
A14 =比利时
Set fillcolumnrange = Sheet5.Range("A5:A20") i = 1 For Each Row In fillcolumnrange.Rows If Not Sheet5.Range("A" & i + 4) = "" Then MsgBox Row(i) End If i = i + 1 Next Row
但是这个代码只是提示替代值,即。
瑞典
俄国
德国
挪威
法国
任何人都可以请帮我find代码中的错误
你正在循环遍历你的范围中的行,并且还在你的循环中推进variablesi
。 你可以引用你正在循环的每个variables。
尝试这个
Set fillcolumnrange = Sheet1.Range("A5:A20") For Each cell In fillcolumnrange.Cells If Not cell = "" Then MsgBox cell End If Next cell
你有不同types的循环的混合物。
要么做里克所说的。
或者使用i
:
Set fillcolumnrange = Sheet5.Range("A5:A20") For i = 1 To fillcolumnrange.Rows.Count If Not Sheet5.Range("A" & i + 4) = "" Then MsgBox Sheet5.Cells(i + 4, 1) End If Next i
或者也许是一个do-Loop
Set fillcolumnrange = Sheet5.Range("A5:A20") i = 1 do until i = fillcolumnrange.Rows.Count + 4 If Not Sheet5.Range("A" & i + 4) = "" Then MsgBox Sheet5.Cells(i + 4, 1) End If i=i+1 Loop
( 编辑现在testing,似乎运行正常)
基于里克的回答,下面是For Each
循环的简短版本:
对于fillcolumnrange.Cells中的每个单元格 如果len(cell)<> 0则MsgBox单元格 下一个