无法添加重复的源参考VBA / Excel – 合并多个工作表

所有工作表都包含在同一个工作簿中。 Sheet1将成为合并汇总表。 有Sheet1以外的dynamic数量的工作表。 Sheet1之后,每个源数据表都有一组数据:

 C54:H56 (a 3x6 grid of cells) 

这些数据需要合并到汇总表( Sheet1 )上的一个3x6区域。 我不是指只是复制数据,而是指Excel中的实际合并函数。

我现在收到的错误是:

运行时错误“1004”:无法添加重复的源引用

我已经尝试了许多不同的变体,并且总是以语法,下标超出范围的问题或当前的结果为前提,如上所述。

当我检查ConsolidationArray的内容时,正在捕获正确的工作表名称和范围。 但是,我实际上不能将这些传递给合并函数本身,并且/或者让它们正确实施。

码:

 Sub WorkseetParsingLoopToGetData() Dim I as Integer Dim WS_Count as Integer Dim ConsolidationArray as Variant WS_Count = ActiveWorkbook.Worksheets.Count 'last worksheet ReDim ConsolidationArray(2 to WS_Count) 'Array to be Sheet2 to last worksheet For I = 2 to WS_Count ConsolidationArray(I) = Worksheets(I).Name & "!C54:H56" Next I Sheets("Summary").Range("J4").Consolidate sources:=(ConsolidationArray), Function:=xlAverage End Sub 

ConsolidationArray需要以R1C1风格的表示法为基础,并使用范围参考string。

 Sub WorkseetParsingLoopToGetData() Dim i As Integer Dim WS_Count As Integer Dim ConsolidationArray() WS_Count = ActiveWorkbook.Worksheets.count 'last worksheet ReDim ConsolidationArray(WS_Count - 2) 'Array to be Sheet2 to last worksheet For i = 2 To WS_Count ConsolidationArray(i - 2) = Worksheets(i).Name & "!R54C3:R56C8" '"!C54:H56" Next i Sheets("Summary").Range("J4").Consolidate Sources:=(ConsolidationArray), Function:=xlAverage End Sub