簡體   English   中英

如何循環瀏覽(特定的)工作表列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM