Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi.
I've just trying to make a class, and I have a error, that I need help with. I have no problem getting data into my collection class, but I have problems using the functions 'Exists' and 'Item'........... Error 427: Object required Can you tell me why ? Thanks Flemming My Class 'clsErrCode' looks like this: Option Explicit Private mvCodeID As Variant Private msName As String Private mdFreq As Double Private mdDura As Double Public Property Let CodeID(ByVal vValue As Variant) mvCodeID = vValue End Property Public Property Get CodeID() As Variant CodeID = mvCodeID End Property Public Property Let Name(ByVal sValue As String) msName = sValue End Property Public Property Get Name() As String Text = msName End Property Public Property Let Frequency(ByVal dValue As Double) mdFreq = dValue End Property Public Property Get Frequency() As Double Frequency = mdFreq End Property Public Property Let Duration(ByVal dValue As Double) mdDura = dValue End Property Public Property Get Duration() As Double Duration = mdDura End Property My collection class 'clsErrCodes' looks like this: Option Explicit Private mCol As Collection ' Add Public Function Add( _ ByVal vntCode As Variant, _ ByVal sErrText As String _ ) As clsErrCode On Error GoTo ErrHandle Dim objErrCode As clsErrCode ' If Not (Exists(vntCode)) Then ' Tilføjer Code til samlingen mCol.Add vntCode, CStr(vntCode) ' Sætter Code's Egenskaber objErrCode.CodeID = vntCode ' Returnerer 'ErrCode' objektet Set Add = objErrCode ' End If Set objErrCode = Nothing Exit Function ErrHandle: ' 457 - This key already associated with an element of this collection If Err.Number = 457 Then Set Add = Nothing End If End Function ' Count Public Property Get Count() As Long Count = mCol.Count End Property ' Remove Public Function Remove(ByVal vntCode As Variant) As Boolean mCol.Remove vntCode End Function ' Exists Public Function Exists(ByVal vntCode As Variant) As Boolean Dim objErrCode As New clsErrCode Dim bRetVal As Boolean bRetVal = False For Each objErrCode In mCol If objErrCode.CodeID = vntCode Then bRetVal = True Exit For End If Next objErrCode Set objErrCode = Nothing Exists = bRetVal End Function ' Clear Public Sub Clear() Class_Initialize End Sub ' Item Public Function Item(ByVal Index As Variant) As clsErrCode ' This line is inserted using NotePad before import ' It is not visible here after import. 'Attribute Item.VB_UserMemId = 0 Set Item = mCol.Item(Index) End Function ' NewEnum Public Function NewEnum() As IUnknown ' Thise two lines is inserted using NotePad before import ' Thy are not visible here after import. 'Attribute NewEnum.VB_UserMemId = -4 'Attribute NewEnum.VB_MemberFlags = "40" Set NewEnum = mCol.[_NewEnum] End Function ' Class Private Sub Class_Initialize() Set mCol = New Collection End Sub Private Sub Class_Terminate() Set mCol = Nothing End Sub Trying to display something with this command: gobjErrCodes is the global variable of clsErrCodes that have been filled - the 'Count' works fine. MsgBox gobjErrCodes.Item(2).CodeID & vbCrLf & _ gobjErrCodes.Item(2).Name |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
template for dvd collection | Excel Discussion (Misc queries) | |||
data collection | Excel Discussion (Misc queries) | |||
help with data collection! | New Users to Excel | |||
RaiseEvent from a class contained in a 2nd class collection? | Excel Programming | |||
For/Each iteration for collection class | Excel Programming |