我有一个简单的XML文件,其中包含我的VBA应用程序的当前版本号。在初始化应用程序时,我调用GetCurrentVersionNumber()
函数来获取该版本号。问题是,当我更改服务器上的XML文件时,VBA无法识别它。它似乎正在读取XML文件的缓存版本。
VBA中是否有办法防止加载的XML文件被缓存?或者,还有另一种解决方法吗?
这是功能:
Function GetCurrentVersionNumber() As String
Dim doc As MSXML2.DOMDocument60
Set doc = New MSXML2.DOMDocument60
doc.async = False
If Not doc.Load("http://mywebsite.com/myfile.xml") Then
Debug.Print "Unable to retrieve current application version."
GetCurrentVersionNumber = ""
Exit Function
End If
GetCurrentVersionNumber = doc.SelectSingleNode("/Application/Version").Text
End Function
如果我转到我的默认浏览器(Chrome),请导航到XML文件,然后按Shift + F5强制重新加载,此后VBA应用程序会更新。
答案 0 :(得分:3)
一种方法是在URL的末尾添加(随机)虚拟查询字符串。这将“强制”重新获取(因为URL唯一性需要考虑查询字符串)
Dim qs as string
qs = Cstr(rnd()*1e6)
If Not doc.Load("http://mywebsite.com/myfile.xml?" & qs) Then
...