簡體   English   中英

遍歷工作簿中的所有工作表並將匹配復制/粘貼到摘要表

[英]Loop Through All Sheets In Workbook And Copy/Paste Match To Summary Sheet

我正在嘗試開發一個 Excel VBA 表,其中有一個摘要表。 程序必須遍歷所有標題為“修訂”的活動工作表,如果當前修訂工作表中沒有任何內容,則能夠復制和粘貼最新修訂工作表中的所有內容。 但是,如果它確實從以前的修訂表中找到了一些東西,它必須在該行的摘要表上進行反擊。

例如,在摘要頁面上會是這樣的:

修訂標題

0 蘋果

遍歷所有工作表

在修訂版 1 表上查找蘋果

將蘋果修訂版 1 粘貼到摘要表

修訂標題

1 蘋果

到目前為止,我的代碼是這樣的,但我認為它並不在正確的軌道上,其中“BOM”是上面示例中的摘要表。 代碼還必須遍歷所有行,直到它檢測到第一個空白行,然后移動到下一張工作表,直到沒有更多名為“revision”的工作表。


Dim wkst As Worksheet
Dim row As Long 'if you ever exceed 32,000 this will fail as integer
row = 1
For Each wkst In ActiveWorkbook.Worksheets
' loop through the Open worksheets
   If wkst.Name <> "Summary" Then
        Sheets("BOM").Range("B2").Value = Worksheets(I + 1).Range("B2")
        Sheets(I + 1).Range("B2").Copy
        Sheets("BOM").Range("B5").PasteSpecial xlPasteValues
      row = row + 1
   End If

Next
    
End Sub

我很抱歉,因為我很難理解你想要什么。
特別是您提到了一張名為“summary”的工作表和一張名為“BOM”的工作表。

無論如何,下面是我對你想要什么的猜測

在此處輸入圖像描述

代碼假設上圖中 A 列的數據是工作表“rev1”的 A 列數據,C 列是工作表“rev2”的 A 列數據,E 列是工作表 A 列的數據表“rev3”。

目標是計算名稱包含“rev”的所有工作表上所有現有數據的出現次數。

因此,根據圖片中的示例,預期結果是 G 列圖片中的結果,該結果將放入名為“摘要”列 A 的工作表中。例如:標題“AA”的出現次數為兩次次(2 AA),即在工作表“rev1”中一次,在工作表“rev2”中一次......標題“G”的出現是四次(4 GG),即在工作表“rev1”中一次,並且在工作表“rev2”中兩次,在工作表“rev3”中一次......等等。 其他“rev”表上不存在的標題是唯一的,前綴為“1”。

Sub test()
Dim arr As Object: Set arr = CreateObject("scripting.dictionary")
Dim el As Variant
Dim sh As Worksheet
Dim cnt As Integer
Dim c as Range

For Each sh In Worksheets
    If InStr(sh.Name, "rev") Then _
        For Each c In sh.Range("A2", sh.Range("A" & Rows.Count).End(xlUp)): arr(c.Value) = 1: Next
Next


For Each el In arr
    For Each sh In Worksheets
        If InStr(sh.Name, "rev") Then cnt = cnt + Application.CountIf(sh.Range("A:A"), el)
    Next sh
Sheets("summary").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Value = CStr(cnt) & " " & el
cnt = 0
Next el

End Sub

代碼的作用:
它收集每張紙上名稱包含“rev”的所有唯一值,從單元格 A2 開始,到變量 arr 中最后一個值的任何行。

然后它循環到 arr 中的每個元素,以計算每個工作表上有多少個名稱包含“rev”的元素,並將其保存到變量 cnt 中。

然后最后它在工作表“摘要”列A中寫入cnt值和元素名稱。

暫無
暫無

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

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