我的问题是关于VBA中的IE自动化。我得到了代码来处理页面并单击下载按钮。搜索了几个小时后,我在StackOverFlow上看到了这个页面:
Automate saveas dialogue for IE9 (vba)
他们建议的代码完美地用于保存需要下载的待处理文件...但是,我想将文件保存到特定目录中(另存为)。问题:
如何更改以下代码,以便执行我需要执行的操作?我尝试在第3行将“保存”更改为“另存为”,但它无效。
如果无法使用数字1,我该如何修改代码,这样我就可以获取文件的名称以及文件保存到的确切文件夹地址?
Option Explicit
Dim ie As InternetExplorer
Dim h As LongPtr
Private Declare PtrSafe Function FindWindowEx Lib "user32" Alias
"FindWindowExA" (ByVal hWnd1 As LongPtr, ByVal hWnd2 As LongPtr, ByVal
lpsz1 As String, ByVal lpsz2 As String) As LongPtr
Sub Download()
Dim o As IUIAutomation
Dim e As IUIAutomationElement
Set o = New CUIAutomation
h = ie.Hwnd
h = FindWindowEx(h, 0, "Frame Notification Bar", vbNullString)
If h = 0 Then Exit Sub
Set e = o.ElementFromHandle(ByVal h)
Dim iCnd As IUIAutomationCondition
Set iCnd = o.CreatePropertyCondition(UIA_NamePropertyId, "Save")
Dim Button As IUIAutomationElement
Set Button = e.FindFirst(TreeScope_Subtree, iCnd)
Dim InvokePattern As IUIAutomationInvokePattern
Set InvokePattern = Button.GetCurrentPattern(UIA_InvokePatternId)
InvokePattern.Invoke
End Sub
答案 0 :(得分:0)
前段时间我解决了我的问题,但我忘记在这里发帖了。 我没有尝试将文档保存为"另存为",而是使用上面的代码将文件保存到我的下载文件夹中。然后,我在该文件夹中查找最新文件。请参阅以下链接:
finding latest file in a folder and opening it (vba access)
最后,将文件从该目录移动到我想要的文件夹。