A
Arnold Klapheck
My understanding is in a two dimensional array the second dimension has to be
the same length for each one, What I would like is to have the second
dimension to be different lengths so it only has to be the length to handle
the number of items.
not being able to do that I figure the next best thing is the find the max
number of items in the second dimension and "redim preserve" the second
dimension so I don't have excess number of items. However I am having trouble
doing this getting message that it has already been dimensioned. Anyone have
ideas on how to make this work? Thanks.
below is my code and what I am trying to do.
Public Type Material
MatNum As Integer
MatDate(1 To 30) As Date ' 30 is the max number needed
End Type
Sub Load_Extraction_Dates_Into_Array()
Dim MatLoopCount As Integer, DateCount As Integer, maxDateNum i As Integer
Sheets("Extraction Dates").Select
For MatLoopCount = 1 To 10
With MatType(MatLoopCount)
DateCount = 0
For i = 1 To Cells(Rows.Count, MatLoopCount).End(xlUp).Row - 1
..MatDate(i) = Cells(i + 1, MatLoopCount).Value
DateCount = DateCount + 1
Next
..MatNum = DateCount
if DateCount > maxDateNum then ' add this
maxDateNum = DateCount 'add
end if ' add
End With
Next
redim preserve MatType.MatNum(1 to maxDateNum) 'this dosn't want to work
End Sub
the same length for each one, What I would like is to have the second
dimension to be different lengths so it only has to be the length to handle
the number of items.
not being able to do that I figure the next best thing is the find the max
number of items in the second dimension and "redim preserve" the second
dimension so I don't have excess number of items. However I am having trouble
doing this getting message that it has already been dimensioned. Anyone have
ideas on how to make this work? Thanks.
below is my code and what I am trying to do.
Public Type Material
MatNum As Integer
MatDate(1 To 30) As Date ' 30 is the max number needed
End Type
Sub Load_Extraction_Dates_Into_Array()
Dim MatLoopCount As Integer, DateCount As Integer, maxDateNum i As Integer
Sheets("Extraction Dates").Select
For MatLoopCount = 1 To 10
With MatType(MatLoopCount)
DateCount = 0
For i = 1 To Cells(Rows.Count, MatLoopCount).End(xlUp).Row - 1
..MatDate(i) = Cells(i + 1, MatLoopCount).Value
DateCount = DateCount + 1
Next
..MatNum = DateCount
if DateCount > maxDateNum then ' add this
maxDateNum = DateCount 'add
end if ' add
End With
Next
redim preserve MatType.MatNum(1 to maxDateNum) 'this dosn't want to work
End Sub