首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

excel vba 提问:为什么编译异常(提示说else没有if)

2012-03-29 
excel vba 提问:为什么编译错误(提示说else没有if)写了一段代码。为什么提示说编译错误!贴出我的代码,请高

excel vba 提问:为什么编译错误(提示说else没有if)
写了一段代码。为什么提示说编译错误!
贴出我的代码,请高手帮忙解答!谢谢!

星号下的那行,就是报错的代码。
是一个比较麻烦的if嵌套,不好意思,水平有限。等解决了基本代码的问题,我再学习怎么优化!

Sub   insertfirst()
      Dim   i   As   Variant
      i   =   2
     
    While   Trim(Worksheets( "sheet1 ").Range( "A "   &   i   +   1).Value   <>   vbNullString)
            If   Worksheets( "sheet1 ").Range( "D "   &   i   +   1).Value   <>   Worksheets( "sheet1 ").Range( "D "   &   i).Value   Then
                  If   Worksheets( "sheet1 ").Range( "C "   &   i   +   1).Value   =   1   Then   i   =   i   +   1
                  Else
                          Worksheets( "sheet1 ").Rows(i   +   1   &   ": "   &   i   +   1).Select
                          Selection.insert   Shift:=xlDown
                          Worksheets( "sheet1 ").Range( "C "   &   i   +   1).Value   =   1
                          i   =   i   +   1
               
  *(编译错误!else没有if)          
              ElseIf   Worksheets( "sheet1 ").Range( "B "   &   i   +   1).Value   =   Worksheets( "sheet1 ").Range( "B "   &   i).Value   Then
                        If   Worksheets( "sheet1 ").Range( "C "   &   i   +   1).Value   =   Worksheets( "sheet1 ").Range( "C "   &   i).Value   +   1   Then   i   =   i   +   1
                        Else
                                Worksheets( "sheet1 ").Rows(i   +   1   &   ": "   &   i   +   1).Select
                                Selection.insert   Shift:=xlDown
                                Worksheets( "sheet1 ").Range( "C "   &   i   +   1).Value   =   Worksheets( "sheet1 ").Range( "C "   &   i).Value   +   1
                                i   =   i   +   1

            Else
                    Select   Case   Worksheets( "sheet1 ").Range( "B "   &   i).Value


                    Case   1,   3,   5,   7,   8,   10,   12
                        If   Worksheets( "sheet1 ").Range( "C "   &   i).Value   =   31   Then
                                If   Worksheets( "sheet1 ").Range( "C   "   &   i   +   1).Value   =   1   Then   i   =   i   +   1
                                Else
                                        Worksheets( "sheet1 ").Rows(i   +   1   &   ": "   &   i   +   1).Select
                                        Selection.insert   Shift:=xlDown
                                        Worksheets( "sheet1 ").Range( "C "   &   i   +   1).Value   =   1
                                        i   =   i   +   1
                        Else
                                Worksheets( "sheet1 ").Rows(i   +   1   &   ": "   &   i   +   1).Select
                                Selection.insert   Shift:=xlDown
                                Worksheets( "sheet1 ").Range( "C "   &   i   +   1).Value   =   Worksheets( "sheet1 ").Range( "C "   &   i).Value   +   1
                                i   =   i   +   1
                    Case   Else
                        If   Worksheets( "sheet1 ").Range( "C "   &   i).Value   =   30   Then
                              If   Worksheets( "sheet1 ").Range( "C   "   &   i   +   1).Value   =   1   Then   i   =   i   +   1
                                Else
                                        Worksheets( "sheet1 ").Rows(i   +   1   &   ": "   &   i   +   1).Select
                                        Selection.insert   Shift:=xlDown


                                        Worksheets( "sheet1 ").Range( "C "   &   i   +   1).Value   =   1
                                        i   =   i   +   1
                        Else
                                Worksheets( "sheet1 ").Rows(i   +   1   &   ": "   &   i   +   1).Select
                                Selection.insert   Shift:=xlDown
                                Worksheets( "sheet1 ").Range( "C "   &   i   +   1).Value   =   Worksheets( "sheet1 ").Range( "C "   &   i).Value   +   1
                                i   =   i   +   1
                  End   Select
          End   If
      Wend
End   Sub

[解决办法]
If Worksheets( "sheet1 ").Range( "C " & i + 1).Value = 1 Then i = i + 1 这一行就错了

热点排行