Excel 如何循环浏览(特定)工作表列表

Excel 如何循环浏览(特定)工作表列表,excel,vba,Excel,Vba,我正在使用Excel 2013&我正在组装一个宏来自动复制/粘贴多张表中的实际数据,每个站点一张表,大约80多个站点,工作簿还有许多其他的表,我不想从E6:E157到右边的一列,哪一列取决于数据的月份。我有下面的复制/粘贴代码,但我似乎无法让它在工作表中迭代 Dim month As Integer month = Sheets("Group Incl Others").Range("b2") Sheets("Group Incl Others").Select Range("

我正在使用Excel 2013&我正在组装一个宏来自动复制/粘贴多张表中的实际数据,每个站点一张表,大约80多个站点,工作簿还有许多其他的表,我不想从E6:E157到右边的一列,哪一列取决于数据的月份。我有下面的复制/粘贴代码,但我似乎无法让它在工作表中迭代

Dim month As Integer

month = Sheets("Group Incl Others").Range("b2")
    Sheets("Group Incl Others").Select
    Range("e6:e157").Select
    Selection.Copy
    ActiveCell.Offset(0, (13 + month)).Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
我想做的是为宏提供一个工作表列表,它可以在隐藏的工作表中或在代码本身中工作&它可以在列表中进行复制和粘贴。这是一个相当静态的表单列表&只有在我们获得新站点时才会更改。除了我要处理的第一张工作表(包括其他工作表)外,这些工作表都在相邻的工作表组中


我尝试了这里和其他网站的一些建议,但都没有进入下一页。我已经很长时间没有使用VBA了,所以我有点不知所措,不知道如何继续操作。

将要编辑的工作表列表放在某个工作表上并不重要;如果将标题放在列表顶部,并在公式栏左侧的“名称”框中键入sheets2Bedited,则选择“隐藏”或“不隐藏”,然后选择工作表名称而不是列标签。这将创建一个名为sheets2Bedited的命名范围,该范围将在以下宏中使用

Dim mnth As Long, rWS As Range, ws0 As Worksheet
mnth= Sheets("Group Incl Others").Range("b2").Value
For Each rWS In Range("sheets2Bedited")
    With Sheets(rWS.Value)
        'either like this
        .Range("e6:e157").Offset(0, 13 + mnth) = _
          Sheets("Group Incl Others").Range("e6:e157").Value
        'or like this
        '.Range("e6:e157").Offset(0, 13 + mnth) = _
          .Range("e6:e157").Value
    End With
Next rWS

我无法从您的代码中读取您在复制、粘贴特殊值操作中实际希望用作源和目标的内容,因此我提供了两种选择

谢谢,我来试一试。来源是每张表中e6:e157的范围,目标是右边14-25列,在我们的会计年度中,4月是第1个月,因此右边14列,5月是第2个月,右边15列,等等,所以它可能是第二个选项。“包括其他人在内的组”工作表恰好是第一张需要编辑的工作表。@PaulJ-你说得对。这应该是第二种选择。如果B2中的mnth对于每个工作表都会发生变化,则应将其移动到工作表中,并使用。。。以结尾并更改为mnth=.Rangeb2.Value。它在With SheetsrWS.Value位上出现下标超出范围。可能您的命名范围创建不正确。看看这个示例工作簿,我很快就找到了命名范围,在名称管理器和公式框左侧的下拉框中选择它时,命名范围看起来都正常,不再出现超出范围的错误,但不会更改工作表。。。