返回列表 上一主題 發帖

[發問] 取出網頁資料會出現指定年月不合

回復 1# dechiuan999
  1. Option Explicit
  2. Sub Ex_個股日成交資訊()
  3.     Dim i As Integer, s As Integer, k As Integer, A As Object, ii, j
  4.     Dim STK_NO As String    '股票代碼 INPUT
  5.    ' Dim myear As String     '年度 SELECT
  6.    ' Dim mmon As String      '月份 SELECT
  7.     STK_NO = "2485"
  8.     With CreateObject("InternetExplorer.Application")
  9.         .Visible = True
  10.         .navigate "http://www.twse.com.tw/ch/trading/exchange/STOCK_DAY/STOCK_DAYMAIN.php"
  11.         Do While .Busy Or .ReadyState <> 4: DoEvents: Loop
  12.         With .document
  13.             .getelementsbytagname("INPUT")("STK_NO").Value = STK_NO
  14.             .getelementsbytagname("SELECT")("myear").Value = Year(Date)      '2014
  15.             .getelementsbytagname("SELECT")("mmon").Value = Month(Date)      '7 月
  16.             
  17.             '.getelementsbytagname("SELECT")("myear").Value = Year(Date) - 1 '2013
  18.             '.getelementsbytagname("SELECT")("mmon").Value = Month(Date) - 1 '6 月
  19.                     
  20.             .getelementsbytagname("INPUT")("login_btn").Click
  21.         End With
  22.         Do While .Busy Or .ReadyState <> 4: DoEvents: Loop
  23.         Do
  24.             Set A = .document.getelementsbytagname("table")
  25.         Loop While A Is Nothing
  26.         If InStr(A(6).innertext, "查無資料:") Then
  27.             MsgBox A(6).innertext
  28.         Else
  29.             With ActiveSheet
  30.                 .Cells.Clear
  31.                 For i = 0 To A(7).Rows.Length - 1      '寫入資料
  32.                     k = k + 1
  33.                     For j = 0 To A(7).Rows(i).Cells.Length - 1
  34.                         .Cells(k, j + 1) = A(7).Rows(i).Cells(j).innertext
  35.                     Next
  36.                 Next
  37.             End With
  38.         End If
  39.         .Quit        '關閉網頁
  40.     End With
  41. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 3# dechiuan999
  1. Do
  2.             Set A = .document.getelementsbytagname("table")
  3.         Loop While A Is Nothing
  4.         If InStr(A(6).innertext, "查無資料:") Then
  5.             MsgBox A(6).innertext
  6.         Else
  7.             Dim A_Length As Integer
  8.             With ActiveSheet
  9.                 .Cells.Clear
  10.                 k = 1
  11.                 For A_Length = 0 To A.Length - 1
  12.                     
  13.                     '*** A(6) 及 A(7) 小弟一直無法悟出其函意為何呢? ***
  14.                      .Cells(k, "A") = "table.Item  " & A_Length
  15.                     .Cells(k, "A").Interior.Color = vbYellow                    
  16.                     '********************************************
  17.                   
  18.                     For i = 0 To A(A_Length).Rows.Length - 1      '寫入資料
  19.                         k = k + 1
  20.                         For j = 0 To A(A_Length).Rows(i).Cells.Length - 1
  21.                             .Cells(k, j + 1) = A(A_Length).Rows(i).Cells(j).innertext
  22.                         Next
  23.                     Next
  24.                     k = k + 1
  25.                 Next
  26.             End With
  27.         End If
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 【時日莫空過】一個人在世間做了多少事,就等於壽命有多長。因此必須與時間競爭,切莫使時日空過。
返回列表 上一主題