动态数据分配循环在第34行停止(MS-Excel-VBA)

时间:2016-04-29 00:36:14

标签: excel vba excel-vba

我有一个数据分配,它根据用户选择分配数据。 此代码有效,但数据分配在第34行停止。

尝试将“TRY”值更改为1000,以便生成更多数据,但仍然在第34行停止。

没有错误提示,代码仍然有效,但数据分配在第34行停止,并且无需删除数据。

这是我的代码:

Sub MapTIX()
    Dim YRTCounter As Long, TRYCounter As Long, YRT As Long, TRY As Long
    Dim nextrow As Long
    Dim dummy As String
    Dim StartQ As String

    StartQ = ActiveSheet.Range("K7").Value
    YRT = ActiveSheet.Range("B4").Value
    TRY = ActiveSheet.Range("F4").Value
    nextrow = ActiveSheet.Range("O4").Value + 3
    YRTCounter = 4
    TRYCounter = 4

    If StartQ = "YRT" Then
       If YRT >= TRY Then
          YRT_YRTTRY_TIX
       Else
          YRT_TRYYRT_TIX
       End If
    End If

    If StartQ = "TRY" Then
        If YRT <= TRY Then
          TRY_TRYYRT_TIX
        Else
           TRY_YRTTRY_TIX
        End If
    End If

End Sub

Sub YRT_YRTTRY_TIX()
    Dim YRTCounter As Long, TRYCounter As Long, YRT As Long, TRY As Long
    Dim nextrow As Long
    Dim dummy As String

    YRT = ActiveSheet.Range("B4").Value + 3
    TRY = ActiveSheet.Range("F4").Value + 3
    nextrow = ActiveSheet.Range("O4").Value + 4
    YRTCounter = 4
    TRYCounter = 4
    nexc = 4

    For YRTCounter = 4 To YRT
       ActiveSheet.Range("Q" & nextrow).Value = ActiveSheet.Range("D" & YRTCounter).Value
       ActiveSheet.Range("V" & nextrow).Value = ActiveSheet.Range("D28").Value
       nextrow = ActiveSheet.Range("O4").Value + 4
       ActiveSheet.Range("Q" & nextrow).Value = ActiveSheet.Range("H" & TRYCounter).Value
       ActiveSheet.Range("V" & nextrow).Value = ActiveSheet.Range("D28").Value
       TRYCounter = TRYCounter + 1
       nextrow = ActiveSheet.Range("O4").Value + 4
    Next YRTCounter

End Sub

Sub YRT_TRYYRT_TIX()
    Dim YRTCounter As Long, TRYCounter As Long, YRT As Long, TRY As Long
    Dim nextrow As Long
    Dim dummy As String

    YRT = ActiveSheet.Range("B4").Value + 3
    TRY = ActiveSheet.Range("F4").Value + 3
    nextrow = ActiveSheet.Range("O4").Value + 4
    YRTCounter = 4
    TRYCounter = 4

    For TRYCounter = 4 To TRY
        ActiveSheet.Range("Q" & nextrow).Value = ActiveSheet.Range("D" & YRTCounter).Value
        ActiveSheet.Range("V" & nextrow).Value = ActiveSheet.Range("D28").Value
        nextrow = ActiveSheet.Range("O4").Value + 4
        ActiveSheet.Range("Q" & nextrow).Value = ActiveSheet.Range("H" & TRYCounter).Value
        ActiveSheet.Range("V" & nextrow).Value = ActiveSheet.Range("D28").Value
        YRTCounter = YRTCounter + 1
        nextrow = ActiveSheet.Range("O4").Value + 4
    Next TRYCounter
End Sub

Sub TRY_YRTTRY_TIX()
    Dim YRTCounter As Long, TRYCounter As Long, YRT As Long, TRY As Long
    Dim nextrow As Long
    Dim dummy As String

    YRT = ActiveSheet.Range("B4").Value + 3
    TRY = ActiveSheet.Range("F4").Value + 3
    nextrow = ActiveSheet.Range("O4").Value + 4
    YRTCounter = 4
    TRYCounter = 4

    For YRTCounter = 4 To YRT
        ActiveSheet.Range("Q" & nextrow).Value = ActiveSheet.Range("H" & TRYCounter).Value
        ActiveSheet.Range("V" & nextrow).Value = ActiveSheet.Range("D28").Value
        nextrow = ActiveSheet.Range("O4").Value + 4
        ActiveSheet.Range("Q" & nextrow).Value = ActiveSheet.Range("D" & YRTCounter).Value
        ActiveSheet.Range("V" & nextrow).Value = ActiveSheet.Range("D28").Value
        TRYCounter = TRYCounter + 1
        nextrow = ActiveSheet.Range("O4").Value + 4
    Next YRTCounter
End Sub

1 个答案:

答案 0 :(得分:0)

增加MaxCase将不会在该代码中执行任何操作。

我假设下面单元格中的值是31.添加3到最后是你在第34行循环结束的原因

YRT = ActiveSheet.Range("B4").Value + 3

尝试增加ActiveSheet.Range("B4")中的值,看看你的循环是否会更进一步。