注册 登录
编程论坛 VB6论坛

本人菜鸟,请教一下,next 没有 for是什么原因,请大神帮忙改一下,谢谢。

dym258791731 发布于 2017-04-28 10:50, 1302 次点击
Sub s1()
 Dim rg As Range
 For Each rg In Range("d2:d176")
   If rg = "5335" Then
     rg = "一级"
   ElseIf rg = "4235" Then
     rg = "二级"
   ElseIf rg = "3828" Then
     rg = "三级"
   ElseIf rg = "3190" Then
     rg = "四级"
   ElseIf rg = "2937" Then
     rg = "五级"
   ElseIf rg = "2662" Then
     rg = "六级"
    If rg = "2431" Then
     rg = "七级"
   ElseIf rg = "2145" Then
     rg = "八级"
   ElseIf rg = "1881" Then
     rg = "九级"
   ElseIf rg = "1760" Then
     rg = "十级"
   ElseIf rg = "1661" Then
     rg = "十一级"
   ElseIf rg = "1639" Then
     rg = "十二级"
      ElseIf rg = "1529" Then
     rg = "十三级"
 End If
 Next rg
 
End Sub
6 回复
#2
wp2319572017-04-28 10:54
FOR EACH
#3
dym2587917312017-04-28 14:32
回复 楼主 dym258791731
还是运行不了啊!
#4
风吹过b2017-04-28 15:31
七级 的代码写错了。

这种的 If 块,建议用 Select case 来写,If 块太容易出错了。

#5
xzlxzlxzl2017-04-28 19:39
那么多if没有对应的else造成的,你的代码应该这样写:
Sub s1()
  const c1="5335,4235,3828,3190,2937,2662,2431,2145,1881,1760,1760,1661,1639,1529"
  const c2="一级,二级,三级,四级,五级,六级,七级,八级,九级,十级,十一级,十二级,十三级"
  Dim rg As Range,b1() as string,b2() as string,i as integer
  For Each rg In Range("d2:d176")
    b1=split(c1,",")
    b2=split(c2,",")
    for i=0 to ubound(b1)
      if rg=b1(i) then
        rg=b2(i)
        exit for
      endif
    next
  next
end sub
#6
ZHRXJR2017-04-28 21:01
For Each rg In Range("d2:d176")
   If rg = "5335" Then
     rg = "一级"
   ElseIf rg = "4235" Then
     rg = "二级"
   ElseIf rg = "3828" Then
     rg = "三级"
   ElseIf rg = "3190" Then
     rg = "四级"
   ElseIf rg = "2937" Then
     rg = "五级"
   ElseIf rg = "2662" Then
     rg = "六级"
   ElseIf rg = "2431" Then    '这里缺少Else
     rg = "七级"
   ElseIf rg = "2145" Then
     rg = "八级"
   ElseIf rg = "1881" Then
     rg = "九级"
   ElseIf rg = "1760" Then
     rg = "十级"
   ElseIf rg = "1661" Then
     rg = "十一级"
   ElseIf rg = "1639" Then
     rg = "十二级"
      ElseIf rg = "1529" Then
     rg = "十三级"
 End If
 Next
#7
风吹过b2017-04-28 23:12
回复5楼
split 应该在 for 之前
1