6

145 のカテゴリの繰り返しリストがあり、カテゴリごとに 15 列のデータがあります。カテゴリの数を 24 に減らし、対応するデータを追加することで、このリストを統合しています。

たとえば、最初にカテゴリ ABCDEFG があり、統合した場合、A のすべての値を追加し、たとえば F を追加して、新しいカテゴリを取得します。

もう 1 つの問題は、これら 145 のカテゴリすべてが 60 の期間にわたって繰り返されることです。そのため、各期間のデータを個別に統合する必要があります。

これを行うには、配列を使用しようとしています。

Sub CategoriesToSectors()
Dim k As Integer
Dim j As Integer
Dim p As Integer
Dim Destination As Range
' p is just a filler/dummy variable until I later decide which categories go into which    sector 


Dim CategoryData(144, 14) As Long
Dim SectorData(23, 14) As Long

k = 0
' k should go Upto 60
' I first copy the data from a range in the first worksheet into the array CategoryData 
' Then I move 145 rows down for the next time-period's data and repeat this whole process
While k < 60
Sheets("ReformattedData").Select
Range("B1:P145").Select
ActiveCell.CurrentRegion.Offset(k * 145, 0).Select
CategoryData = Selection.Value

For j = 0 To 14
SectorData(0, j) = CategoryData(1, j) + CategoryData(6, j) + CategoryData(8, j) +           CategoryData(13, j)
For p = 1 To 23
SectorData(p, j) = CategoryData(15, j) + CategoryData(19, j) + CategoryData(31, j) +    CategoryData(44, j)
Next p
Next j
' paste consolidated sectordata array one below another in SectorData worksheet
Sheets("SectorData").Select
 Range("B2").Select
Set Destination = ActiveCell.Offset(k * 25, 0)
Destination.Resize(UBound(SectorData, 1), UBound(SectorData, 2)).Value = SectorData


Wend 


End Sub

ご覧のとおり、最初に最初の範囲ブロックを CategoryData 配列にコピーしようとしています。次に、データをセクター配列に結合しています-繰り返し値を使用してテストしました-pを使用したforループは存在しないはずです。最終的には、24 の異なるステートメントを使用して SectorData 配列を作成します。

次に、連結データを別のシートに貼り付けます。最初のシートに戻り、選択範囲を次の範囲ブロック (最初のセルの 145 セル下) に移動し、このデータを選択して繰り返します。

これは機能していないようです - 最初の配列にデータを入力する際のエラー - CategoryData.

助けていただければ幸いです。

ありがとうございました

4

2 に答える 2