中易网

excel vba 如何跳出循环

答案:4  悬赏:40  
解决时间 2021-01-11 15:23
  • 提问者网友:温旧梦泪无声
  • 2021-01-10 20:26
excel vba 如何跳出循环
最佳答案
  • 二级知识专家网友:神鬼未生
  • 2021-01-10 21:11
在next i 前面插入一个标注,如:xiayige:,然后在得到数据后插入跳出循环语句,比如:goto xiayige
Sub test()
Dim num As String, i As Integer, j As Integer, subt As String
For i = 2 To Sheets("原格式").Range("a56565").End(3).Row
num = Sheets("原格式").Cells(i, 1).Value
If num <> "" Then '
Sheets("数据").Cells(i, 1).Value = num
For j = 2 To Sheets("原格式").Range("c56565").End(3).Row
subt = Sheets("原格式").Cells(j, 3).Value
Select Case subt
Case "月租费"
Sheets("数据").Cells(i, 2).Value = Sheets("原格式").Cells(j, 5).Value
goto xiayige

Case "来话显示功能费"
Sheets("数据").Cells(i, 3).Value = Sheets("原格式").Cells(j, 5).Value
goto xiayige

Case "悦铃使用费"
Sheets("数据").Cells(i, 4).Value = Sheets("原格式").Cells(j, 5).Value
goto xiayige

Case "区间通话费"
Sheets("数据").Cells(i, 5).Value = Sheets("原格式").Cells(j, 5).Value
goto xiayige

Case "长话费"
Sheets("数据").Cells(i, 6).Value = Sheets("原格式").Cells(j, 5).Value

goto xiayige

Case "区内通话费"
Sheets("数据").Cells(i, 7).Value = Sheets("原格式").Cells(j, 5).Value
goto xiayige

Case "国际自动长途费用"
Sheets("数据").Cells(i, 8).Value = Sheets("原格式").Cells(j, 5).Value
goto xiayige

Case ""
Sheets("数据").Cells(i, 9).Value = Sheets("原格式").Cells(j, 5).Value
goto xiayige

End Select
Next j
End If
xiayige:
Next i
End Sub追问您好,我想定义一个静态变量,用来存储循环 j 已经循环到第几行,使goto xiayige 回到循环i 后再次进入 循环j 时可以继续从上一次跳出来的地方开始循环(比如我是在获得第十行数据后跳出的,我想继续从i开始循环的时候,j循环是从11行开始。)追答哦,这个可以这样解决,再声明一个变量k
Sub test()
Dim num As String, i As Integer, j As Integer, subt As String
Dim k As Integer
For i = 2 To Sheets("原格式").Range("a56565").End(3).Row
num = Sheets("原格式").Cells(i, 1).Value
If num <> "" Then '
Sheets("数据").Cells(i, 1).Value = num
For j = IIf(j =k, k, 2) To Sheets("原格式").Range("c56565").End(3).Row
k=j
subt = Sheets("原格式").Cells(j, 3).Value
Select Case subt
Case "月租费"
Sheets("数据").Cells(i, 2).Value = Sheets("原格式").Cells(j, 5).Value
goto xiayige
End Select
Next j
End If
xiayige:
Next i
End Sub
全部回答
  • 1楼网友:人间朝暮
  • 2021-01-10 23:49
End Select
Exit for
Next j
  • 2楼网友:一叶十三刺
  • 2021-01-10 22:20
看了一下你的程序,循环结束后程序就结束了,所以只要取完数后退出程序就行,就不用退出循环了,在每条
Sheets("数据").Cells(i, 2).Value = Sheets("原格式").Cells(j, 5).Value
后加
exit sub
这是最简便了的
  • 3楼网友:酒醒三更
  • 2021-01-10 21:41
我暂时保留我的看法!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息