IE 10打开保存并另存为

时间:2015-07-03 08:23:34

标签: excel excel-vba internet-explorer-10 vba

我目前正在编写一些代码来下载CSV文件并保存到特定文件夹中。

我从网上下载文件的当前方式是:

On Error Resume Next
    With Workbooks.Open("Direct Link to the CSV or XLS File")
        .SaveAs 'Name of file destination
        .Close SaveChanges:=False 'Added this in due to a pop up appearing when downloading a CSV
    End With
On Error GoTo 0

我尝试下载的这个特定文件只能在IE中完成。

这是我到目前为止打开网页的代码:

Sub data()

Dim IE As Object
Dim Report As Variant


Set IE = CreateObject("INTERNETEXPLORER.APPLICATION")
IE.Navigate    "Name of CSV File URL"
IE.Visible = True

End Sub

然后我出现了一个Windows资源管理器弹出窗口。图片链接如下。

http://fud.community.services.support.microsoft.com/Fud/FileDownloadHandler.ashx?fid=2062fa2a-ad09-4379-bfe0-49abeb5516fc

有没有想法我会如何点击"保存为按钮并将其放入文件路径。我可以想象Sendkeys是一个解决方案。

这适用于运行excel 2010和Windows 7的IE10。

1 个答案:

答案 0 :(得分:0)

经过一些小试验后,我找到了一个解决方法。相反,我通过excel使用网页查询打开它。

以下是代码:

Workbooks.add

 With ActiveSheet.QueryTables.add(Connection:= _
    "URL;http\\:thelinkiused.csv" _
    , Destination:=Range("$A$1"))
    .Name = "transaction"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = False
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .WebSelectionType = xlAllTables
    .WebFormatting = xlWebFormattingNone
    .WebPreFormattedTextToColumns = True
    .WebConsecutiveDelimitersAsOne = True
    .WebSingleBlockTextImport = False
    .WebDisableDateRecognition = False
    .WebDisableRedirections = False
    .Refresh BackgroundQuery:=False
End With
    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
    Semicolon:=False, Comma:=True, Space:=False, Other:=False

ActiveWorkbook.SaveAs Filepath & "\thelinkIused.csv"
ActiveWorkbook.Close savechanges:=False

这显然是一个非常基本的代码,并不需要所有用于分隔数据的false语句。