LinkBack Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 23
Default Type mismatch accessing variant array too many times

I have a problem with a 2D array containing objects
that crashes when I try to read more els out than I put in.
It gives a Type Mismatch.
Here's the main code (everything except the object)
Hope you can help,
Peter.

Const ID_CMD = 1
Const ID_MAC = 2

Const MAX_ARRAY = 5 ' max index of arrays
Const MAX_ROW = 22 ' max index of contents of all arrays

Private aAllArrays (1 To MAX_ARRAY, 1 To MAX_ROW) As Variant
Private aArrayNames (1 To MAX_ARRAY ) As String
Private aSheetNames (1 To MAX_ARRAY ) As String
Private aCurrIndexes(1 To MAX_ARRAY) As Integer
Private aMaxIndexes (1 To MAX_ARRAY) As Integer

aArrayNames(ID_CMD) = "CMD"
aArrayNames(ID_MAC) = "MAC"

aSheetNames(ID_CMD) = "spec6B"
aSheetNames(ID_MAC) = "MAC"

aCurrIndexes(ID_CMD) = 1
aCurrIndexes(ID_MAC) = 1

aMaxIndexes(ID_CMD) = 1
aMaxIndexes(ID_MAC) = 1
'
' addToArray
'
Private Sub addToArray(iID As Integer, _
vItem As Variant)
If aCurrIndexes(iID) MAX_ROW Then
MsgBox "Too many objects in " & aArrayNames(iID), vbCritical
Else
MsgBox "Adding " & vItem.id & " to " & aArrayNames(iID) & "
array."
Set aAllArrays(iID,aCurrIndexes(iID)) = vItem
aCurrIndexes(iID) = aCurrIndexes(iID) + 1
aMaxIndexes(iID) = aMaxIndexes(iID) + 1
End If
End Sub ' addToArray
'
' getNextOBJ
' If pointer is in range,
' Get the current obj from its array.
' Increment the pointer to the next one.
' Else Return Nothing.
'
Public Function getNextOBJ(iID As Integer) As Variant
If aCurrIndexes(iID) aMaxIndexes(iID) Then
Set getNextOBJ = Nothing
MsgBox "Too many objects in array " & iID, vbCritical
Else
Set getNextOBJ = aAllArrays(iID, aCurrIndexes(iID)) ' *******
' Type mismatch at runtime.
' debugger:
' iID = 1
' aCurrIndexes(iID) = 3
aCurrIndexes(iID) = aCurrIndexes(iID) + 1
End If
End Function ' getNextOBJ
'
' main
'
Sub main()
Dim oCMD As clsCMDdefn6B
Set oCMD = New clsCMDdefn6B
oCMD.init Me

addToArray ID_CMD, oCMD
addToArray ID_CMD, oCMD

oCMD = getNextOBJ(ID_CMD)
oCMD = getNextOBJ(ID_CMD)
oCMD = getNextOBJ(ID_CMD) ' ****crashes******
End Sub ' main





*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
array values type mismatch? bwreath[_5_] Excel Programming 6 June 18th 04 02:20 PM
Variant Array with String Values - Type Mismatch jamiee Excel Programming 2 March 7th 04 03:39 AM
variant array containing cel adresses convert to actual ranges-array Peter[_21_] Excel Programming 5 December 10th 03 09:50 PM
setting ctl to array of checkboxes yields type mismatch error. tritan Excel Programming 0 July 11th 03 09:22 PM
setting ctl to array of checkboxes yields type mismatch error. Tritan Excel Programming 0 July 11th 03 07:50 PM


All times are GMT +1. The time now is 04:32 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"