读书人

excel vba 提问:为什么编译异常(提示

发布时间: 2012-03-29 12:53:12 作者: rapoo

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

读书人网 >VB

热点推荐