我想从特定的JSON文件准备每日报告。我的计划是通过VBA下载文件,然后编写一个自动生成报告的宏。
问题是JSON文件位于单点登录身份验证协议之后。出于各种原因,我只是不想让VBA自己通过SSO。
我想做的是: 1)让VBA打开JSON文件的地址。 2)如果我尚未登录,请打开SSO页面的浏览器窗口,以便我可以手动输入我的凭据。 3)一旦JSON文件打开 - 如果我已经登录并且数据存在,则关闭浏览器窗口并将数据下载到特定位置。 4)调用另一个宏,以便生成报告。
答:这可能吗?
B:怎么样?
答案 0 :(得分:2)
是的,这是可能的,有点凌乱。由于我不知道您的系统如何表明登录成功,我假设登录页面被定向到经过身份验证的页面。
Dim IE
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.Navigate "Your login page" 'Go to login page
Do
DoEvents
Loop Until InStr(lcase(IE.LocationURL), lcase("Authenticated")) <> 0 ' wait until authentication is successful
IE.Navigate "your json url" ' Navigate to json url
Do
DoEvents
Loop Until IE.ReadyState = 4 ' wait until download is completed
Debug.Print IE.Document.body.innerHTML '<-- your json
IE.Quit
Set IE = Nothing