I’m looking for ideas on how to implement a way to get web based XML data into a spreadsheet. The ideal solution would update the spreadsheet every time it’s opened with little or no user interaction (.i.e, I’d prefer to not have to tell people to run a macro).
however, my first thought (and probably what I’ll end up going with) is a Perl script that downloads the XML, parses it, and spits out a spreadsheet – this won’t update the spreadsheet and I’ll have to generate the document on some type of schedule (yes, i prefer complete automation and coding myself out of jobs 🙂 ). what i (think i) want is odbc for XML that would accept a URI, that would probably be ideal. this way, maybe i could map the XPath to columns and the spreadsheet would update automagically every time it was opened. or, maybe there’s a way in VBA to get a URI and parse XML and have it run when the workbook is opened?
Parse the XML file using DOM, then spit out the relevant values onto your sheet. Here’s a trivial working example to get you started:
This early binding requires a reference set as follows:
Tools > References… > Microsoft XML
Note that
d.async = Falseforces the load to complete before proceeding further; this is especially important when loading remote files.You want to
Then put the macro in the
Workbook_Openevent! That’s what it’s there for.