2013-04-11 102 views
2

我想將MutualFundsPortfolioValues導入Excel。我不知道如何從一個網站導入數據,我需要做的是在所選公司的2個不同日期內將網絡數據導入到Excel中。使用VBA在Excel中導入網頁數據

當我將日期輸入到B3和B4單元格並單擊Commandbutton1時, Excel中可能會從我的網頁的所有數據導入到我的Excel表格「結果」

例如:

date 1: 04/03/2013 <<<< " it will be in sheets "input" cell B3 
date 2 : 11/04/2013 <<<<< " it will be in sheet "input " cell B4 
choosen companies <<<<<< its Range "B7: B17" 

我添加了一個樣本Excel工作表和網頁的PRINTSCREEN .. 任何想法?

我的網頁,網址:

http://www.spk.gov.tr/apps/MutualFundsPortfolioValues/FundsInfosFP.aspx?ctype=E&submenuheader=0

示例Excel和數據的樣品圖片: http://uploading.com/folders/get/b491mfb6/excel-web-query

+0

你有辦法來自動填充該網頁上列出生成你想要的數據?如果你不能這樣做,那麼你最好使用「下載爲xls」選項,因爲無論如何你都必須手動完成。 – NickSlash 2013-04-11 23:15:37

+0

旁註:可能要使用另一個圖像主機,很多彈出窗口都是NSFW – NickSlash 2013-04-11 23:18:00

+0

我該如何實現自動化?我需要在該頁面上命名爲Allianz的公司的數據...我已將示例excel文件添加到http://uploading.com/folders/get/b491mfb6/excel-web-query – 2013-04-11 23:30:19

回答

0

這裏是導入用IE自動化數據的代碼。

輸入參數
開始日期(在Sheet按照下面的截圖輸入)= B3
結束日期= B4
Şirketler= B5(它允許哪些應該出現下面B5等倍數值)

enter image description here

輸入ViewSource的Fileds enter image description here

代碼是如何工作的:

  • 的代碼創建Internet Explorer中的對象並導航到 site
  • 等待,直到頁面完全加載和準備。 (IE。readyState的)
  • 創建對象的HTML類
  • 提交按鈕
  • 迭代直通表dgFunds的每一行輸入值從工作表Sheet(txtDateBegin,txtDateEnd,lstCompany)
  • 點擊該輸入字段和轉儲到Excel中Sheet2中

代碼:

Dim IE As Object 
Sub Website() 


    Dim Doc As Object, lastRow As Long, tblTR As Object 
    Set IE = CreateObject("internetexplorer.application") 
    IE.Visible = True 

navigate: 
    IE.navigate "http://www.spk.gov.tr/apps/MutualFundsPortfolioValues/FundsInfosFP.aspx?ctype=E&submenuheader=0" 

    Do While IE.readystate <> 4: DoEvents: Loop 

    Set Doc = CreateObject("htmlfile") 
    Set Doc = IE.document 

    If Doc Is Nothing Then GoTo navigate 

    Set txtDtBegin = Doc.getelementbyid("txtDateBegin") 
    txtDtBegin.Value = Format(Sheet1.Range("B3").Value, "dd.MM.yyyy") 

    Set txtDtEnd = Doc.getelementbyid("txtDateEnd") 
    txtDtEnd.Value = Format(Sheet1.Range("B4").Value, "dd.MM.yyyy") 


    lastRow = Sheet1.Range("B65000").End(xlUp).row 
    If lastRow < 5 Then Exit Sub 

    For i = 5 To lastRow 

     Set company = Doc.getelementbyid("lstCompany") 
     For x = 0 To company.Options.Length - 1 
      If company.Options(x).Text = Sheet1.Range("B" & i) Then 
       company.selectedIndex = x 

       Set btnCompanyAdd = Doc.getelementbyid("btnCompanyAdd") 
       btnCompanyAdd.Click 
       Set btnCompanyAdd = Nothing 

       wait 
       Exit For 
      End If 
     Next 
    Next 


    wait 

    Set btnSubmit = Doc.getelementbyid("btnSubmit") 
    btnSubmit.Click 

    wait 

    Set tbldgFunds = Doc.getelementbyid("dgFunds") 
    Set tblTR = tbldgFunds.getelementsbytagname("tr") 



    Dim row As Long, col As Long 
    row = 1 
    col = 1 

    On Error Resume Next 

    For Each r In tblTR 

     If row = 1 Then 
      For Each cell In r.getelementsbytagname("th") 
       Sheet2.Cells(row, col) = cell.innerText 
       col = col + 1 
      Next 
      row = row + 1 
      col = 1 
     Else 
      For Each cell In r.getelementsbytagname("td") 
       Sheet2.Cells(row, col) = cell.innerText 
       col = col + 1 
      Next 
      row = row + 1 
      col = 1 
     End If 
    Next 

    IE.Quit 
    Set IE = Nothing 

    MsgBox "Done" 

End Sub 

Sub wait() 
    Application.wait Now + TimeSerial(0, 0, 10) 
    Do While IE.readystate <> 4: DoEvents: Loop 
End Sub 

輸出繼電器表在表2

enter image description here

HTH

+0

我收到「Http請求驗證錯誤或意外的Http請求」錯誤... 是否可以更改>>>輸入參數開始日期= B3結束日期= B4Şirketler=從B5到B15 <<<<<因爲我想同時下載超過6個基金 輸出表B20 – 2013-04-12 03:57:02

+0

@AcemiExcelci我已經更新了代碼,一次添加超過Şirketler。 – Santosh 2013-04-12 05:02:41

+0

親愛的Santosh,您可以通過電子郵件上傳或發送您的excel工作簿。因爲我得到運行時錯誤424,鍵入不匹配錯誤等。我不知道什麼是錯的。 – 2013-04-12 08:24:54

0

你可以read about it by clicking here然後使用宏錄製器來錄製這樣做,這會給你一些代碼來一起工作,如果你需要更多的幫助,只是問

這裏是堆棧溢出了另一個問題:Importing data from web page with diffrent Dates in excel using VBA code

基本上你要一個QueryTable對象添加到Excel中的活動工作表的QueryTables集合。

下面是查詢表的MSDN參考:MSDN Library: Excel 2007 Querytables Add method

+0

宏記錄器沒有幫助。 – 2013-04-11 23:05:01

+0

宏記錄器does not幫助..它因爲頁面已下載作爲xls或xml選項...您的示例問題鏈接是不同於我的 – 2013-04-11 23:35:29

+1

其不同,因爲它有一個不同的問題,類似於你的,可能有助於解決您的問題。 – NickSlash 2013-04-11 23:43:29

相關問題