从受密码保护的网站复制表(没有ID)

时间:2016-06-21 11:06:25

标签: excel vba excel-vba passwords

我想从我银行的网站上检索一张表格,然后将它以相同的格式粘贴到Excel工作表中。 感谢这个非常有用的网站上的一些帖子,我设法自动编写了一个vba代码:

  • 打开Internet Explorer窗口
  • 填写登录和密码详细信息
  • 点击提交按钮,从而将我连接到我的银行帐户
  • 点击"前一天的交易报告"按钮,从而生成报告
  • 最后在Internet Explorer中显示此报告

现在我的问题是: 如何复制此报告(这是一个表格)并将其粘贴到Excel工作表中,其格式与网站上显示的完全相同? 在网站页面的html代码中,此表没有" id"。但是它有一个叫做"报告"的课程。而且这是唯一一个拥有这门课程的人。

我想我必须使用它:

    IE.document.getElementsByClassName("report")(0).outerHTML

但我不确定如何使用它...基本上对我来说最简单的事情就是编写将报告复制到剪贴板的最后一部分代码,并将其以相同的格式粘贴到电子表格中。 / p>

知道我该怎么做吗?

3 个答案:

答案 0 :(得分:0)

我录制了一个宏来获取代码,使用它应该为你复制表。我认为这是最适合你的方式。您必须更改URL和webtable。这将复制它。

    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://THE URL AFTER LOGIN WITH THE TABLE", _
        Destination:=Range("$A$1"))
        .CommandType = 0
        .Name = "SEQUENCE OF URL"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = "11"
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With

让我们这样做!! :)一步一步。

答案 1 :(得分:-1)

你是对的。使用它填写表格。

尝试打开页面,按F12并使用控制台确保一切正常。

填写     document.getElementById(“Id”)。value =“xxxxx”     document.getElementById(“Id2”)。value =“pass”

点击     的document.getElementById( “名称”)。单击()

答案 2 :(得分:-1)

       Set objie = CreateObject("InternetExplorer.Application")
       objie.Visible = True
       With objie
           .AddressBar = False
           .StatusBar = False
           .MenuBar = False
           .Toolbar = 0

         .NAVIGATE "http://www.loginpage.com"

       While .BUSY
       Wend
       Do While .READYSTATE <> 4: DoEvents: Loop

       'first you login
       Set htmldoc = .document
       htmldoc.getElementById("UserId").Value = "login"
       htmldoc.getElementById("Password").Value = "pass"
       htmldoc.getElementById("submit-btn").Click

       End With

尝试使用这个,它的第一步......对你有意义吗?我是新来的,所以我会尽我所能