VBA中的语法错误 [英] Syntax Errors in VBA

查看:340
本文介绍了VBA中的语法错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不断收到错误(其他没有if或循环没有做),我真的不知道为什么......有人可以帮忙吗?!谢谢!

I keep getting errors (either else without if or loop without do) in this, and I really have no idea why... can anyone help?! Thanks!

Do Until (Range("I4").Value = 0)

    For i = 2 To lLastrow

                If Range("G" & i).Value = 0 Then
                    i = i + 1

                ElseIf Range("G" & i).Value < 0 Then
                      Do Until (Range("G" & i).Value = 0)
                      For j = 0 To i
                         If Range("F" & i - j).Value < 0 Then
                               Range("F" & i - j).Value = Range("F" & i - j).Value + 1
                              Else: j = j + 1
                              End If
                             Application.Calculate
                        Loop
                    ElseIf Range("G" & i).Value > 0 Then
                        Do Until (Range("G" & i).Value = 0)
                            For k = 0 To i
                             If Range("F" & i - k).Value > 0 Then
                              Range("F" & i - k).Value = Range("F" & i - k).Value - 1
                                   Else: k = k + 1
                                   End If
                               Application.Calculate
                        Loop
                End If


            Application.Calculate
Loop


推荐答案

尝试用你拥有的代码替换下面的代码。您缺少每个 For 循环的 Next 执行循环一起使用,类似地对于下一步一起去(它们构成了循环的基础)。

Try replacing the code below with what you have. You were missing Next for each of your For loops. Do and Loop go together, similarly For and Next go together (they form the basis for the loop).

这是代码,我把它清理成了以便更容易理解。

Here's the code, I've cleaned this up as well to make it easier to follow.

Do Until (Range("I4").Value = 0)
    For i = 2 To lLastrow
        If Range("G" & i).Value = 0 Then
            i = i + 1
        ElseIf Range("G" & i).Value < 0 Then
            Do Until (Range("G" & i).Value = 0)
                For j = 0 To i
                    If Range("F" & i - j).Value < 0 Then
                        Range("F" & i - j).Value = Range("F" & i - j).Value + 1
                    Else
                        j = j + 1
                    End If
                    Application.Calculate
                Next j
            Loop
        ElseIf Range("G" & i).Value > 0 Then
            Do Until (Range("G" & i).Value = 0)
                For k = 0 To i
                    If Range("F" & i - k).Value > 0 Then
                        Range("F" & i - k).Value = Range("F" & i - k).Value - 1
                    Else
                        k = k + 1
                    End If
                    Application.Calculate
                Next k
            Loop
        End If
    Next i
    Application.Calculate
Loop

这篇关于VBA中的语法错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆