我有145個類別的重複列表,每個類別有15列數據。 我通過將類別數量減少到24並添加相應數據來整合此列表。如何將選定範圍複製到給定數組中?
例如, 如果最初我有分類A B C D E F G和我合併,我會在A中添加所有的值,比如F,以獲得新的類別。
另一個問題是所有這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數組。
然後我將Consolidated數據粘貼到另一張紙上。我回到第一個工作表並將我的選擇向下移動到下一個範圍塊(第一個單元下面的145個單元格),然後選擇這些數據並重復。
這似乎並不奏效 - 輸入數據到第一個數組的錯誤 - CategoryData。
幫助將不勝感激。
謝謝
在什麼行不錯誤發生,是什麼錯誤消息? –
錯誤發生在這裏:CategoryData = Selection.Value 沿線的東西不能分配數組。 – user2643068