首页 > 解决方案 > 在excel中运行循环功能时遇到问题

问题描述

我得到了这段代码,但它似乎并没有一直运行到最后。卡住了,调试器只会突出显示 Loop 关键字或i = i + 1行。我究竟做错了什么?

我尝试了If声明,For … Next但似乎没有任何效果。

Sub Macro1()
    '
    ' Macro1 Macro
    '
    Dim i As Integer    
    i = 2

    Do Until i > 586
        Range("B2").Formula = "=sheet2!CS" & i & ""
        Range("B3").Formula = "=sheet2!CR" & i & ""
        Range("B4").Formula = "=sheet2!CQ" & i & ""
        Range("B5").Formula = "=sheet2!CP" & i & ""
        Range("B6").Formula = "=sheet2!CO" & i & ""
        Range("B7").Formula = "=sheet2!CN" & i & ""
        Range("B8").Formula = "=sheet2!CM" & i & ""
        Range("B9").Formula = "=sheet2!CL" & i & ""
        Range("B10").Formula = "=sheet2!CK" & i & ""
        Range("B11").Formula = "=sheet2!CJ" & i & ""
        Range("B12").Formula = "=sheet2!CI" & i & ""
        Range("B13").Formula = "=sheet2!CH" & i & ""
        Range("B14").Formula = "=sheet2!CG" & i & ""

        'Copy and PasteSpecial a Range
        Range("AL18").Copy
        Worksheets("Sheet2").Range("CV" & i & "").PasteSpecial Paste:=xlPasteValues

        i = i + 1
    Loop
End Sub

标签: excelvbaloops

解决方案


当我测试它时,代码似乎没有任何问题..

这是您的代码,尽管它变得更短,看看它是否有效。

Sub Macro1()
    Dim i As Long, j As Long
    Dim colltr As String

    For i = 2 To 586
        For j = 2 To 14
            colltr = Split(Cells(1, 99 - j).Address, "$")(1)
            Range("B" & j).Formula = "=sheet2!" & colltr & i
        Next j
    'Copy and PasteSpecial a Range

    Worksheets("Sheet2").Range("CV" & i & "").value = Range("AL18").value
    Next i

End Sub

推荐阅读