每个循环都有问题

时间:2019-08-22 04:42:59

标签: vba loops foreach

我在VBA中嵌套一个For Each循环时遇到了一些麻烦。

我的第一个For Each语句运行良好,但是我无法添加第二个。我收到一个编译错误:对于已在使用的控制变量。它一定是循环的嵌套。

我正在尝试做的事情:

在Sheet1范围J13:J15上,我的时间长度可变 在Sheet1范围K13:K15上,我的上报百分比是可变的 在Sheet1单元格J39上,我有起价

对于每个选项,我希望能够复制并粘贴时间长度和提升百分比,复制起始价格,然后目标价格,以使我的回报增量= 0。

一切似乎都可以正常工作,问题在于将Escalation%添加到循环中。

感谢任何帮助。

Sub GSeek()

Application.ScreenUpdating = False

    Dim rng As Range
    Dim cell As Range
    Dim rng2 As Range
    Dim cell2 As Range
    Dim c As Integer
    Dim i As Integer
    Dim k As Integer
    Dim j As Integer
    Dim m As Integer
    m = 20
    c = 13
    i = 1
    k = 1
    j = 12
   Set rng = Worksheets("Sheet1").Range("J13:J15")
   Set rng2 = Worksheets("Sheet1").Range("K13:K15")

    'Copy PPA term
        For Each cell In rng.Rows
            rng.Rows(i).Copy
            Worksheets("Sheet2").Range("H18").PasteSpecial Paste:=xlPasteValues
            i = i + 1

        'Copy PPA Escalation
            For Each cell2 In rng2.Rows
                rng2.Rows(k).Copy
                Worksheets("Sheet2").Range("H40").PasteSpecial Paste:=xlPasteValues
                k = k + 1

            'Paste Assumed PPA Start Price
                With Worksheets("Sheet1")
                .Range("J39").Copy
                Worksheets("Sheet2").Range("G40").PasteSpecial Paste:=xlPasteValues
                End With

            'Goal Seek IRR
                With Worksheets("Sheet2")
                .Range("H153").GoalSeek Goal:=0, ChangingCell:=.Range("G40")

            'Copy PPA Bills to Sheet3
                .Range("J40:AH40").Copy
                Worksheets("Sheet3").Cells(c + 8, 10).PasteSpecial Paste:=xlPasteValues
                c = c + 8

            'Copy PPA Rate to Sheet3
                .Range("G40").Copy
                Worksheets("Sheet3").Cells(j + 8, 10).PasteSpecial Paste:=xlPasteValues
                j = j + 8

            'Copy PPA Escalation to Sheet3
                .Range("H40").Copy
                Worksheets("Sheet3").Cells(m, 8).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
                m = m + 8
                End With

            Exit For

        Exit For

    Next cell2
    Next cell

End Sub

0 个答案:

没有答案