使用for循环递增迭代工作表

时间:2015-10-20 16:23:23

标签: excel vba excel-vba for-loop

我是VBA的新手,我的代码遇到了一些麻烦。我有名为2001,2002,2003 ... 2010的表。我想依次选择每个表,并对每个工作表执行一些简单的操作。我试图使用for循环,从2000年到2010年递增,但它被卡住了。我认为问题是我不知道如何使用for循环指定它应该选择的工作表名称。

.logos {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.partner {
  width: span(3 of 12);
  margin-right: gutter(12);

  &:nth-child(4n),
  &:last-child {
    margin-right: 0;
  }
}

1 个答案:

答案 0 :(得分:0)

问题在于,如果在Sheets()内放置一个整数,则假定您正在查找索引,如第2000页中的那样,而非Sheet 2000。

将其更改为

Sheets(cstr(i)).Select

话虽如此,您确实应该通过代码处理并通过直接引用单元格来删除.select。一个好的资源是here。它将大大加快并帮助确保更少的错误。

所以你的For循环就是这样

For i = 2000 To 2002              ' for each of the years in turn
    With Sheets(CStr(i))
        .Range(.Range("A17"), .Range("A17").End(xlDown).End(xlToLeft)).Copy
    End With
    With Worksheets("Combined_data")
        y = .UsedRange.Rows.Count        'count how many rows of worksheet "AllData_Raw" have been used so far.
        .Cells(y + 1, 1).Paste
    End With
Next i