【问题标题】:How to go 2 rows down instead of 1 through loop/counter- VBA如何通过循环/计数器-VBA 向下移动 2 行而不是 1 行
【发布时间】:2023-11-11 23:49:02
【问题描述】:

我有下面的 vba,它允许我在每个循环中下降 1 行。但我希望它下降 2 行而不是 1 行。我该怎么做呢?

Sub Languages()

 Range("L2").Select
    ActiveCell.Range("K1:L1").Select


    For counter = 2 To 6
        ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
        ActiveChart.ApplyChartTemplate ( _
            "C:\Users\arboari\AppData\Roaming\Microsoft\Templates\Charts\1Language.crtx")
        ActiveChart.SetSourceData Source:=Range("'Master Sheet'!$B$" & counter & ":$F$" & counter)
        ActiveChart.Location Where:=xlLocationAsObject, Name:="Charts"
        With ActiveChart
            .HasTitle = False
            .Axes(xlCategory).Select
            .FullSeriesCollection(1).XValues = "='Master Sheet'!$B$:$B$3"
            .Parent.Top = 50
            .Parent.Left = c * 130
        End With
        Sheets("Master Sheet").Select
        ActiveCell.Offset(1, 0).Range("A1:I1").Select

        c = c + 3
    Next counter

End Sub

谢谢!

【问题讨论】:

  • (我认为您在这里打错了:FullSeriesCollection(1).XValues = "='Master Sheet'!$B$:$B$3" 您是否忘记在 SO 上或在您的代码中添加第一个单元格的行?)
  • 如果您只是简单地在 Google 上搜索您的问题,您会在结果的第一页看到无数示例说明如何执行此操作。

标签: excel vba loops counter rows


【解决方案1】:
Sub Languages()

 Range("L2").Select
    ActiveCell.Range("K1:L1").Select


    For counter = 2 To 6 step 2 'loop every two rows
        ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
        ActiveChart.ApplyChartTemplate ( _
            "C:\Users\arboari\AppData\Roaming\Microsoft\Templates\Charts\1Language.crtx")
        ActiveChart.SetSourceData Source:=Range("'Master Sheet'!$B$" & counter & ":$F$" & counter)
        ActiveChart.Location Where:=xlLocationAsObject, Name:="Charts"
        With ActiveChart
            .HasTitle = False
            .Axes(xlCategory).Select
            .FullSeriesCollection(1).XValues = "='Master Sheet'!$B$:$B$3"
            .Parent.Top = 50
            .Parent.Left = c * 130
        End With
        Sheets("Master Sheet").Select
        ActiveCell.Offset(1, 0).Range("A1:I1").Select

        c = c + 3
    Next counter

End Sub

【讨论】:

    【解决方案2】:

    只需在For counter = 2 To 6 之后添加Step 2 --> For counter = 2 To 6 Step 2

    这将使用2,然后下一个循环向上第二步,所以4,然后再次使用6

    更多信息Step here

    【讨论】:

      最近更新 更多