首页 > 解决方案 > 循环遍历 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

标签: excelvba

解决方案


我现在没有时间完成答案,但下面的代码将帮助您入门。当您到达第 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

推荐阅读