2016-08-25 9 views
0

すべてのシートは同じブックに含まれています。 Sheet1は、連結の要約シートになります。 Sheet1を超える動的なワークシートがあります。 IはSheet1後に、各ソース・データ・シートからのデータの設定範囲を有する:重複するソース参照を追加できません。VBA/Excel - 複数のワークシートの統合

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 
+0

ありがとうございました。 – WarOrdos

答えて

1

ConsolidationArray必要がゼロに基づいて範囲参照文字列R1C1スタイルの表記です。

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 
+0

ありがとうございました。解決策は成功しました。私は今、2つのエラーを理解しています。これは、生の機能コードよりも大きな助けになります。 – WarOrdos

+0

私の答えを受け入れてくれてありがとう。それが助けてくれてうれしいです。 –

関連する問題