自动导入数据表单(.isy - SharePoint)

时间:2016-10-26 09:46:24

标签: vba excel-vba excel-2010 excel

因此,我在新的Excel工作簿中将IE自动迁移到SharePoint上的.click'导出到Excel'(为了安全,我们的组织已禁用Visual Basic for SharePoint)。

我使用.SendKeys与第一个消息框进行交互,并使用了一些讨厌的设置来关闭数据连接安全警告。

只留下导入数据表单来处理:

The hurdle

当我尝试使用.SendKeys来模仿Return或Spacebar时,按键发生在其他地方,无论是在开发人员打开时我的代码还是其他应用程序中都没有。

我试图选择Sheet1,就像我手动执行此操作一样,表单会获得焦点。

任何想法如何自动控制此表单或强制它获得焦点以使.SendKeys起作用?

为清楚起见,这是我的完整代码:

Sub export()

    With Application
        .ScreenUpdating = False
        .Calculation = xlCalculationManual
        .DisplayAlerts = False
        .EnableEvents = False
    End With

    Dim IE As Object
    Set IE = Nothing

    Set IE = CreateObject("InternetExplorer.Application")
    IE.Visible = True

    IE.Navigate "SITE CANNOT BE DISCLOSED"

    Do Until (IE.readystate = 4 And Not IE.Busy)
    DoEvents
    Loop

    Dim list

    Set list = IE.Document.getElementById("Ribbon.List-Title").getElementsByTagName("a")(0)

    list.Click
    'list.FireEvent ("onclick") alternative

    Do Until (IE.readystate = 4 And Not IE.Busy)
    DoEvents
    Loop

    Dim export

    Set export = IE.Document.getElementById("Ribbon.List.Actions.ExportToSpreadsheet-Large")
    export.Click

    Application.Wait (Now + TimeValue("00:00:01"))
    Application.SendKeys "%{O}" 'works up to here need to make focus change before next keypress

    Workbooks("Reporting Macro").Sheets("Sheet1").Select
    Application.Wait (Now + TimeValue("00:00:01"))
    Application.SendKeys " "

    End Sub

1 个答案:

答案 0 :(得分:0)

我什至不需要宏.isy下载/导入,我可以简单地刷新数据连接作为宏的一部分。

ActiveWorkbook.RefreshAll