簡體   English   中英

如何遍歷所有工作表以及單元格是否將復制范圍與工作表匹配?

[英]How to loop through all sheets and if cells match copy range to sheet?

我有一個包含許多工作表的工作簿。 我想合並工作表。

大多數工作表中的單元格 A13 是不同的,但對於某些工作表來說它們是相同的。

我想循環瀏覽床單。 如果單元格 A13 匹配,則將第 10 行和第 11 行復制到 A10 中的第一個匹配表中,並刪除其他匹配表。

例如,

比較 Sheet1 和 Sheet2 -> 如果單元格 A13 不匹配比較下一張表,即比較 Sheet2 和 Sheet3 以檢查它們是否匹配。

如果 Sheet2 和 Sheet3 中的單元格 A13 匹配,則將 Sheet3 中的第 10 行和第 11 行復制到第 10 行下方的 Sheet2 中並刪除 Sheet3。

然后將 Sheet2 與 Sheet4 進行比較,依此類推。

Sub WorksheetLoop()

    Dim WS_Count As Integer
    Dim I As Integer

    ' Set WS_Count equal to the number of worksheets in the active workbook.
    WS_Count = ActiveWorkbook.Worksheets.Count

    ' Begin the loop.
    For I = 1 To WS_Count
        If Worksheets(I).Range("A13").Value = Worksheets(I + 1).Range("A13") Then
            Worksheets(I + 1).Range("A7:L9").Copy
            Worksheets(I).Range("A10").PasteSpecial
            Worksheets(I + 1).Delete
        End If
    Next I

End Sub

首先,當這完成時我得到一個錯誤(我懷疑是因為范圍)。

其次,當“A13”僅匹配兩張紙時,它可以工作。 當有多個匹配的工作表時,它只處理第一個匹配的工作表。

另一個問題是,如果有多個匹配的工作表,我將如何保留復制到第一個工作表中的所有范圍,以便將它們粘貼在彼此下方而不是被覆蓋?

另外,嘗試使用:

For Each Worksheet in ThisWorkbook.Sheets

由於您在循環中刪除工作表, WS_Count保持大於您被排除在外的工作表的數量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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