Help with Evaluate/Eval

A

Avi

Hi,

Could someone please help me out implementing evaluate/eval function
in excel vba.

in the code snippet below, i am navigating through a collection object
and trying to find value of a item based on the key.

For i = 0 To objCollection.Length - 1
Key = "id"
strTemp = "objCollection(" & i & ")." & Key
msgbox Evaluate(Chr(34) & strTemp & Chr(34) )
Next i

Following message box returns text objCollection(o).id, but i want
this to be calculated and show me the actual value.

Thanks in advance.
-Avinash
 
G

GS

Avi wrote :
Hi,

Could someone please help me out implementing evaluate/eval function
in excel vba.

in the code snippet below, i am navigating through a collection object
and trying to find value of a item based on the key.

For i = 0 To objCollection.Length - 1
Key = "id"
strTemp = "objCollection(" & i & ")." & Key
msgbox Evaluate(Chr(34) & strTemp & Chr(34) )
Next i

Following message box returns text objCollection(o).id, but i want
this to be calculated and show me the actual value.

Thanks in advance.
-Avinash

You need to specify an objCollection.Item(i) to return the value held
at position i. Specify objCollection.Key to return its value if not an
integer.

Also, not sure why you start your loop at zero to have to subtract 1 to
get the UBound of your counter...

For i = 1 To objCollection.Count

...where i is type Long so it matches .Count!

--
Garry

Free usenet access at http://www.eternal-september.org
ClassicVB Users Regroup!
comp.lang.basic.visual.misc
microsoft.public.vb.general.discussion
 
J

Jim Cone

In order to get started correctly...

A Collection is 1 based.
A Collection does not have a Length property.
A Collection does have a Count property.
--
Jim Cone
Portland, Oregon USA
http://www.mediafire.com/PrimitiveSoftware
(List Files XL add-in: finds and lists files/folders with hyperlinks)




"Avi" <[email protected]>
wrote in message
news:64cec0aa-7a50-49d9-90e8-3ce2fb727f72@i18g2000vbx.googlegroups.com...
 
A

Avi

In order to get started correctly...

A Collection is 1 based.
A Collection does not have a Length property.
A Collection does have a Count property.
--
Jim Cone
Portland, Oregon USA
http://www.mediafire.com/PrimitiveSoftware
(List Files XL add-in: finds and lists files/folders with hyperlinks)




"Avi" <[email protected]>
wrote in message

Thanks for the reply guys. Sorry for the confusion, the collection I referred here is not the VBA collection object rather its a collection of HTML object as below

---
Code:
Set objCollection = m_IE.Document.getElementsByTagName("input")
---

Where m_IE is IE object.

What I am trying to do here is read each input tag present in HTML doc and compare with the defined properties in a dictionary object e.g.

---
Code:
Set oDict = New Dictionary
oDict.Add "id" , "SomeID"
oDict.Add "class" , "SomeClass"
'Have some more key value pairs
---

Now in order to compare, I have following code

---
Code:
Set objCollection = m_IE.Document.getElementsByTagName("input")
CountInput =   objCollection.Length 'Where objCollection.Length will contain number of input tags
For i = 1 To CountInput
For Each Key In oDict.Keys
If Key <> "" Then
If oDict(Key) = objCollection(i).Key Then  '#########PRBLEM LINE#######
'Do something
End If
End If
Next Key
Next i
---

Referring to problem line above, objCollection(i) returns me an HTML object. This object will have properties like id, class etc.
In order to compare the html object to my internal dict object i am trying to evaluate expressiono "objCollection(i).Key" at run time.
e.g. in the loop When oDict("id") = "SomeID" then objCollection(i).id should be calculated and "SomeID" should be compared against that.

PS: Sorry for the long post, but I just tried to elaborate on what I am trying to achieve.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top