View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Avi Avi is offline
external usenet poster
 
Posts: 29
Default Help with Evaluate/Eval

On Wednesday, April 11, 2012 10:19:07 AM UTC+5:30, Jim Cone wrote:
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"
wrote in message
...
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


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.