我在「摘要」選項卡中添加了一行動態列標題,並在工作簿末尾添加了111個工作表,儘管此編號可能會更改。我搜索每個附加工作表中的每個列標題,並將任何匹配下面的單元格立即複製到其對應的列和行,即每個附加工作表的新行,在「摘要」選項卡中。輸出符合我的期望。循環遍歷每個附加工作表所需的時間不會。請讓我知道是否有明顯的方法來優化代碼或更有效地實現我想要的結果。提前致謝。在列標題搜索和工作表循環中提高性能VBA
Sub riasummary()
Dim riawksht As Worksheet
Dim consolwksht As Worksheet
Dim c As Integer
Dim r As Long
Dim sheader As Range
Dim sheaders As Range
Dim rheader As Range
Dim rheaders As Range
c = Sheets("Summary").Cells(1, Columns.Count).End(xlToLeft).Column
Set sheaders = Sheets("Summary").Range(Cells(1, 1), Cells(1, c))
For Each riawksht In ActiveWorkbook.Worksheets
If riawksht.Name <> "Summary" Then
Set rheaders = riawksht.Range("a5:xfd12")
For Each rheader In rheaders
For Each sheader In sheaders
r = Sheets("Summary").Cells(Rows.Count, "a").End(xlUp).Row
If rheader.Value = sheader.Value Then
rheader.Offset(1, 0).Copy
sheader.Offset(r, 0).PasteSpecial xlPasteAll
Application.CutCopyMode = False
'sheader.Offset(1, 0).Value = rheader.Offset(1, 0).Value
End If
Next
Next
End If
Next
End Sub
作爲一個切線,我也偶爾會在下面的代碼行,我似乎無法破譯返回「應用程序定義或對象定義的錯誤」,並在這裏任何見解將不勝感激,以及。
Set sheaders = Sheets("Summary").Range(Cells(1, 1), Cells(1, c))
因此,您的非概要標題可能在5到12行的任何地方? –
更具體地說,只是第5,9和11行。 – Abagnale