我正在使用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
我想要做的是为宏提供要处理的工作表列表(隐藏工作表或代码本身)&它通过列表执行复制&糊。它是一个(相当)静态的工作表列表&只有在我们获得新网站时才会改变。除了我要处理的第一张纸(Group Incl Others)之外,纸张也是连续的。
我从这里尝试了几条建议&其他网站,但它永远不会到下一张表。我很长一段时间没有使用过VBA,所以我对如何继续使用感到有些不知所措。
答案 0 :(得分:0)
在一些工作表上放置要编辑的工作表列表(无关紧要;隐藏与否)然后选择工作表名称(如果在列表顶部放置标题,则不选择列标签)并键入 sheets2Bedited 在hte公式栏左侧的名称框中。这将创建一个名为 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
我无法从您的代码中读取您实际想要用作复制,粘贴特殊,值操作的源和目标的内容,因此我提供了两种选择。