最近遇到一个问题,就是用VBA从局域网打开共享的EXCEL工作簿很慢,有时会卡死,网上没有找到合适的解决方案,头秃了一晚上终于测试通过了一段代码总结出来。下面先分析一下造成这种现象可能的原因:

解决思路是:通过XMLHTTP取得服务器上的EXCEL文件,然后在客户端保存为临时EXCEL文件,再从本地文件提取数据,直接奉上代码:

以临时文件的方式处理的好处是无论原始Excel文件的数据结构做出哪些调整,都不必修改这部分代码;缺点是若程序出现异常中止,本地存储器上可能存在没有被删除的临时文件。若在相对固定的数据结构下可以在代码中直接将取得的XML装载到workbook对象变量中来完善这个问题。
欢迎在跟贴区留下大家遇到的有代表性的问题,我喜欢解决“有趣”的问题。