[英]How can I loop through a (specific) list of worksheets
我正在使用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了,所以我對如何進行操作有點茫然。
將要編輯的工作表列表放在某個工作表上(無論是否隱藏;是否隱藏),然后選擇工作表名稱(如果將標題放在列表頂部,則不選擇列標簽),然后在表格中鍵入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
我無法從您的代碼中讀取您實際上想用作“ 復制”,“選擇性粘貼”,“值”操作的源和目標的內容,因此我提供了兩種選擇。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.