我在“摘要”选项卡中添加了一行动态列标题,并在工作簿末尾添加了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