有一份Excel报表,里面有1w多条数据,并且有一列是IP地址,老板说,把每一行的IP对应的中文地址信息找出来。OMG,这怎么办???
琢磨了一下,整理了思路:操作excel数据最好的方法->vba->vba通过给定的ip地址向远程请求地址信息->将远程返回的地址写入到excel表。
最难的环节就是如何用vba实现http请求??只要这个问题解决了,一切都好说。
百度了一个ip接口(有道ip地址反查接口:
http://www.yodao.com/smartresult-xml/search.s?jsFlag=true&keyfrom=163.com&event=fYodaoCallBack&type=ip&q=123.233.157.9),试了一下,不错,速度挺快的,返回的数据也很简练(fYodaoCallBack(1, {'product':'ip','ip':'123.233.157.9','location':'山东省济南市'} , '');),很明显返回的数据是用js回调方式传入json数据。 好吧,等下只好用vba中的正则表达式来获得location字段的值了,如果vba能调用到js的话获取location字段的值就更方便了,谁让vba没有解析json对象的功能呢?这里先不提,都是后话,能不能实现数据的请求还要看下面的努力啊。
在网上一阵乱搜,发现如果在vba中引用internet transfer control的话就可以调用 openUrl()向远程请