在VBA中循环浏览列

时间:2019-06-15 06:44:00

标签: excel vba

我需要从特定列而不是整个列中选择特定范围的值。这是我的代码。请帮助。

Option Explicit

Public i As Long
Public SubIsRunning As Boolean

Sub initiatesubs()

    If Not SubIsRunning = True Then
        i = 3
        Call copyvalues
        SubIsRunning = True
    End If

End Sub

Sub copyvalues()

    Sheets(2).Columns(i).Value = Sheets(1).Range("C11:C90").Value
    Sheets(3).Columns(i).Value = Sheets(1).Range("U11:U90").Value
    Sheets(2).Range("B11:B90").Value = Sheets(1).Range("L11:L90").Value
    Sheets(3).Range("B11:B90").Value = Sheets(1).Range("L11:L90").Value

    i = i + 1

    Application.OnTime Now + TimeValue("00:04:00"), "copyvalues"
    Debug.Print Now + TimeValue("00:04:00")

End Sub

1 个答案:

答案 0 :(得分:0)

我现在没有时间完成答案,但是下面的代码将帮助您入门。到达第90行时,您需要一个条件来停止循环

Option Explicit

Public i As Long
Public SubIsRunning As Boolean

Sub initiatesubs()
  If Not SubIsRunning = True Then
    i = 3
    Call copyvalues
    SubIsRunning = True
  End If
End Sub

Sub copyvalues()

   Sheets(2).Columns(i).Value =        Sheets(1).Range("C11").offset(i-3).Value

   Sheets(3).Columns(i).Value = Sheets(1).Range("U11").offset(i-3).Value

   Sheets(2).Range("B11").offset(i-3).Value =         Sheets(1).Range("L11").offset(i-3).Value

   Sheets(3).Range("B11").offset(i-3).Value = Sheets(1).Range("L11").offset(i-3).Value

   i = i + 1

  Application.OnTime Now + TimeValue("00:04:00"), "copyvalues"
  Debug.Print Now + TimeValue("00:04:00")
End Sub