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 这一行就错了