View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
CBrine[_4_] CBrine[_4_] is offline
external usenet poster
 
Posts: 11
Default Loading dates from spreadsheet into array

These code changes seem to resolve the problems.

Public Type Material
MatNum As Integer
MatDate(10) As Date
End Type
Public MatType(10) As Material
Sub Test()

Dim MatLoopCount, DateCount As Integer
MatLoopCount = 1

Sheets("Extraction Dates").Select
Range("A2").Select

For MatLoopCount = 1 To 10 'loop right through the ten columns of
materials
DateCount = 1 'set/reset date count to beginning
MatType(MatLoopCount).MatNum = DateCount - 1 'start with date

Do Until ActiveCell.Value = ""
'on the below code I am getting a run time error 9,
MatType(MatLoopCount).MatDate(DateCount) = ActiveCell
ActiveCell.Offset(1, 0).Select 'advance down to next

DateCount = DateCount + 1
Loop
'go back to row 2
ActiveCell.Offset(0, 1).Select 'advance right to next column of
material

Next ' end of looping through the ten columns of materials

End Sub
HTH
Cal

"Arnold Klapheck" wrote:

I am loading dates into a dynamic array and am getting error message, "run
time error 9, subscript out of range" the dates on the spreadsheet are
formatted as date and look like 2/5/2005 in the formula bar, I tried using
DateValue and DateSerial Function, no help. Stepping through the code it
has 2/5/2005 in the activecell.value. Below is my code, any ideas would
be appreciated.

Public Type Material
MatNum As Integer
MatDate() As Date
End Type

Public MatType(10) As Material

Sub Load_Extraction_Dates_Into_Array()

Dim MatLoopCount, DateCount As Integer
MatLoopCount = 1

Sheets("Extraction Dates").Select
Range("A2").Select

For MatLoopCount = 1 To 10 'loop right through the ten columns of
materials
DateCount = 1 'set/reset date count to beginning
MatType(MatLoopCount).MatNum = DateCount - 1 'start with date
count at 0
Do Until ActiveCell.Value = ""
'on the below code I am getting a run time error 9,
subscript out of range error message
MatType(MatLoopCount).MatDate(DateCount) =
ActiveCell.Value
ActiveCell.Offset([1], [0]).Select 'advance down to next
date
DateCount = DateCount + 1
Loop
'go back to row 2
ActiveCell.Offset([0], [1]).Select 'advance right to next column
of material

Next ' end of looping through the ten columns of materials

End Sub