返回列表 上一主題 發帖

股價代號和起始日期的抓取

本帖最後由 GBKEE 於 2016-4-26 10:25 編輯

回復 9# BigDog
2016/4/26 更新
  1. Option Explicit
  2. Sub 鉅亨網_董監持股()
  3.     Dim ie As Object, A As Object, T As Date, i As Integer, c As Integer
  4.     Dim Code As String, xMonth As String
  5.     Code = InputBox("輸入股票代號 :  ", "股票代號", 2303)
  6.     xMonth = InputBox("輸入年月 :  ", "年月", Format(DateAdd("M", -2, Date), "yyyy年m月"))
  7.     Set ie = CreateObject("InternetExplorer.Application")
  8.     ie.Navigate "http://www.cnyes.com/twstock/directorholder/" & Code & ".htm"
  9.    '  ie.Visible = True
  10.     Do While ie.Busy Or ie.ReadyState <> 4: DoEvents: Loop
  11.     With ie.Document
  12.          With .getElementById("ctl00_ContentPlaceHolder1_DropDownList1")
  13.                 .Value = xMonth
  14.                 .fireEvent ("onchange")
  15.         End With
  16.         Do While ie.Busy Or ie.ReadyState <> 4
  17.              DoEvents
  18.         Loop
  19.         On Error Resume Next
  20.         Do
  21.                 DoEvents
  22.                 Set A = .getelementsbytagname("table")(1)
  23.                 If Not A Is Nothing Then
  24.                         If InStr(A.innertext, Format(xMonth, "YYYYM")) Then
  25.                         If Err Then
  26.                            Debug.Print Err
  27.                             Err.Clear
  28.                         Else
  29.                             Exit Do
  30.                         End If
  31.                         End If
  32.                 End If
  33.         Loop
  34.         On Error GoTo 0
  35.         Cells.Clear
  36.         Cells(1, "A").Resize(, 4) = Array("股票代號", Code, "月份", xMonth)
  37.         For i = 0 To A.Rows.Length - 1
  38.             For c = 0 To A.Rows(i).Cells.Length - 1
  39.                 Cells(i + 2, c + 1) = A.Rows(i).Cells(c).innertext
  40.             Next
  41.         Next
  42.     End With
  43.       ie.Quit
  44.     MsgBox "OK"
  45. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 2# yuhuahsiao

Hi Y大您好,
          我使用錄製巨集,但網址顯示也是 ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://www.cnyes.com/twstock/directorholder/1101.htm", Destination:= _
        Range("$A$1"))
以網址來看,只能更改股票代號,月份方面就無法更改...
請問我該如何使用VBA,在儲存格輸入月份,就會帶出資料...請幫忙解惑.

謝謝^^
BigDog
用簡單的心做複雜的事

TOP

回復 11# GBKEE


    感謝G大,收下研究,^^
用簡單的心做複雜的事

TOP

超級版主 您好
我在run...每日收盤資料那個巨集...出現無法執行
用除錯找出...  .Refresh BackgroundQuery:=False
那是否要更改為 true

TOP

回復 14# omit
你可試試看,如不行可上傳檔案看看
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

超級版主 您好
我想請問一個問題:
我有一筆匯整資料 資料 由A2:Z2, A2是顯示日期與時間, B2:Z2是變數的值
我在同一個 SHEET抓取資料 每隔5鐘用複製,選擇性貼(值)上 到 A5:Z5做成一筆新資料
然後 下一次 手動 A6:Z6再貼上一次~~在下一次 A7:Z7 ,但覺得很不方便
(可是用巨集錄製無法更改時間變化)
我想寫 VBA 可以每間隔5分鐘自動更新一次之後,就抓取這一筆資料 然後 可以自動抓取30次
不知如何做,可請版主解惑一下....還在學VBA的語法中.....@@

TOP

回復 16# omit
網站上有很多有關此類的論述,譬如:
http://forum.twbts.com/viewthread.php?tid=6706&extra=&page=1

TOP

回復 17# c_c_lai

謝謝大大您的回覆喔  感恩 感恩

TOP

股價代號和起始日期的抓取

各位老師你好

http://www.cnyes.com/twstock/ps_historyprice/1101.htm

我想抓取上述網頁的資料,無奈網址只有秀出股價代號

但是網頁中的起始日我想自己設定,網頁中的原始碼我看不董

所以,無從抓取他的url請高手幫忙遺下

感恩

回復 19# yopoyuan
將你的發問合併在[指定下載3年歷史股價的資料] ,請從第1帖看起.
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 人的心地是一畦田,土地沒有播下好種子,也長不出好的果實。 -
返回列表 上一主題