Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Rob,
I worked that way. My mistake was to try to dimension the TagName property. Thanks alot, Ömer "Rob Bovey" wrote in message ... Hi Ömer, Even knowing that you're trying to create a property Get, I'm not sure what the problem is. Let me propose a very basic example based on what your original code: --------- In Class1 --------- Option Explicit Private ParsedData() As String Private Sub Class_Initialize() Dim lCount As Long ReDim ParsedData(1 To 10) As String For lCount = 1 To 10 ParsedData(lCount) = "Item " & CStr(lCount) Next lCount End Sub Public Property Get TagName(ByVal intI As Integer) TagName = ParsedData(intI) End Property ------------- In Module 1 ------------- Sub Test() Dim clsTest As Class1 Set clsTest = New Class1 Debug.Print clsTest.TagName(3) Set clsTest = Nothing End Sub Running the Test sub prints out the value "Item 3" in the immediate window, which is what I would expect. What is the conceptual difference between this code and what you're trying to do in your application? -- Rob Bovey, MCSE, MCSD, Excel MVP Application Professionals http://www.appspro.com/ * Please post all replies to this newsgroup * * I delete all unsolicited e-mail responses * "Ömer Ayzan" wrote in message ... Rob thank you for your answer. Actually I have a parse method which finds out how many tags there are within the file opened and then loads them into a 1 by n array. In the first dimension the tag name is kept, and in the second the tag value. TagName and TagValue are read only properties. So I can't use a property let statement. Do you think I should use a collection? Thanking in advance. Ömer "Rob Bovey" wrote in message ... Hi Ömer, The TagName property is a single value, not an array. The way you have it defined (which I think is what you want) is that the desired array index is passed in and the single value from that array is returned. In that case it should work if modified as follows: Public Property Let TagName(ByVal intI As Integer) TagName = ParsedData(intI) End Property This assumes that ParsedData is a valid array and that intI is a valid index into that array. -- Rob Bovey, MCSE, MCSD, Excel MVP Application Professionals http://www.appspro.com/ * Please post all replies to this newsgroup * * I delete all unsolicited e-mail responses * "Ömer Ayzan" wrote in message ... Dear friends, I am trying to write a class that will parse XML data. I have a property called TagName. Since there are many tags I wanted to index them. Even though in the syntax of Property Get statement an argument can be used when I attempt to use the following code I get an "Compile error: Can't assign to read-only property." error. Public Property Let TagName(ByVal intI As Integer) TagName(intI) = ParsedData(intI) End Property Any suggestions are appreciated Ömer Ayzan |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
I Need An Argument | Excel Worksheet Functions | |||
Can I use the argument: - IF, AND, THEN, ElSE | New Users to Excel | |||
if argument? | Excel Discussion (Misc queries) | |||
One more Argument. | Excel Worksheet Functions | |||
IF THEN argument | Excel Discussion (Misc queries) |