ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

ªÑ»ù¥N¸¹©M°_©l¤é´Áªº§ì¨ú

¦^´_ 1# gelai01000001
¤U¸ü3¦~¾ú¥vªÑ»ùªº¸ê®Æ
  1. Option Explicit
  2. Sub ¹d¦ëºô_¾ú¥v¦æ±¡()
  3.     Dim Sh As Worksheet, Code As String, d_Start As String, d_End  As String
  4.     Dim A As Object, i As Integer, c As Integer, T As Date
  5.     Code = InputBox("¿é¤JªÑ²¼¥N¸¹ :  ", "ªÑ²¼¥N¸¹", 2303)
  6.     d_End = InputBox("¿é¤Jµ²§ô¤é´Á :  ", "µ²§ô¤é´Á", Date)
  7.     If Len(Code) <= 3 Or Not IsDate(d_End) Then Exit Sub
  8.     Set Sh = ActiveSheet
  9.     With Sh
  10.         .UsedRange.Clear
  11.         .[a1] = Code
  12.         .[b1] = DateAdd("yyyy", -3, d_End)  '¤U¸ü3¦~¾ú¥vªÑ»ùªº¸ê®Æ
  13.         .[C1] = d_End
  14.         Code = .[a1]
  15.         d_Start = Format(.[b1], "yyyy/mm/dd")
  16.         d_End = Format(.[C1], "yyyy/mm/dd")
  17.     End With
  18.     With CreateObject("InternetExplorer.application")
  19.         .Navigate "http://www.cnyes.com/twstock/ps_historyprice/" & Code & ".htm"
  20.         '.Visible = True
  21.         Application.StatusBar = Code & " ¾ú¥v¦æ±¡ µ¥­Ô¤¤..."
  22.         Do While .Busy Or .ReadyState <> 4
  23.              DoEvents
  24.         Loop
  25.         Set A = .Document.getelementsbytagname("input")
  26.         A(5).Value = d_Start
  27.         A(6).Value = d_End
  28.         A(7).Click
  29.         T = Time
  30.         Do
  31.             DoEvents
  32.         Loop Until Time > T + #12:00:08 AM#
  33.         Set A = .Document.getelementsbytagname("table")(1)
  34.         Application.StatusBar = Code & " ¾ú¥v¦æ±¡ ¤U¸ü¤¤..."
  35.         Cells(2, 1) = .Document.getelementsbytagname("span")(79).innertext
  36.         For i = 0 To A.Rows.Length - 1
  37.             For c = 0 To A.Rows(i).Cells.Length - 1
  38.                 Sh.Cells(i + 3, c + 1) = A.Rows(i).Cells(c).innertext
  39.             Next
  40.         Next
  41.        .Quit
  42.     End With
  43.     Application.StatusBar = Code & " ¾ú¥v¦æ±¡ " & Application.Text(Time - T, "[S] ¬í") & " ¤U¸ü§¹¦¨"
  44.     MsgBox "OK"
  45.     Application.StatusBar = False
  46. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 3# gelai01000001
CreateObject("InternetExplorer.application") ¦h·j´M¤@¤U·|¦h¤F¸Ñªº
  1. With CreateObject("InternetExplorer.application")
  2.     '¾ú¥v¦æ±¡ ¹w³]¬°¤@­Ó¤ë¸ê®Æ,¤é´Áªº§ó§ï»Ý¦bºô­¶¤W§ó§ï
  3.         .Navigate "http://www.cnyes.com/twstock/ps_historyprice/" & Code & ".htm"  'IEªººô§}
  4.         '.Visible = True
  5.         Application.StatusBar = Code & " ¾ú¥v¦æ±¡ µ¥­Ô¤¤..."
  6.         Do While .Busy Or .ReadyState <> 4     'µ¥­Ôºô­¶¸ê®Æ¤U¸ü§¹¦¨...
  7.              DoEvents
  8.         Loop
  9.         Set A = .Document.getelementsbytagname("input")  'ºô­¶¤¤¦¨­û tagname¬° "input"
  10.         A(5).Value = d_Start    '0 ¶}©lºâ°_²Ä6­Ó => 5     ¶}©l¤é´Á
  11.         A(6).Value = d_End      '0 ¶}©lºâ°_²Ä7­Ó => 6     µ²§ô¤é´Á
  12.         A(7).Click              '0 ¶}©lºâ°_²Ä8­Ó => 7     «ö¤U¬d¸ßÁä
  13.         T = Time
  14.         Do
  15.             DoEvents
  16.         Loop Until Time > T + #12:00:08 AM#              '«ö¤U¬d¸ßÁä«á,»Ýµ¥­Ôºô­¶¸ê®Æ¤U¸ü§¹¦¨
  17.         Set A = .Document.getelementsbytagname("table")(1) ''0 ¶}©lºâ°_²Ä2­Ó => 1
  18.         'ºô­¶¤¤¦¨­û tagname¬° "table" ,¬°¸ê®Æ©Ò¦bªº¦ì¸m.
  19.         Application.StatusBar = Code & " ¾ú¥v¦æ±¡ ¤U¸ü¤¤..."
  20.         Cells(2, 1) = .Document.getelementsbytagname("span")(79).innertext  'innertext: ¤å¦r
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 5# edwardlay
2# ¬Ý­n´X¦~¥i­×§ï -3  ¬Ý¬Ý
  1. 12.        .[b1] = DateAdd("yyyy", -3, d_End)  '¤U¸ü3¦~¾ú¥vªÑ»ùªº¸ê®Æ
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 7# gelai01000001
¸Õ¸Õ¬Ý
  1. Option Explicit
  2. Sub ¤U¸üºô¯¸¸ê®Æ()
  3.     Dim Startmonth As String, Startday As String, xDate As Date, Msg As Boolean, Sh As Worksheet
  4.     Dim Wb As Workbook, Ws As Worksheet, Stock  As Range
  5.     On Error GoTo EX                        'µ{¦¡°õ¦æ¤¤¦³¿ù»~®É¸õ¨ì EX: Ä~Äò°õ¦æµ{¦¡
  6.     xDate = Date                            '·í¤é
  7.     Set Sh = Workbooks.Add.Sheets(1)        '·s¬¡­¶Ã¯ªº²Ä¤@­Ó¤u§@ªí
  8. EX:
  9.     If Err.Number <> 0 Or Msg = True Then   '·í¤é(©|¥¼¦³¸ê®Æ:¿ù»~) ©Î ¥ð¥«
  10.         xDate = xDate - 1                   '©¹«á°h¤@¤Ñ¤@ª½¨ì¶}¥«. ( °²¦p¥ð¥«¶W¹L1¤Ñ¥H¤W(2,3,4,5,6,¬K¸`9¤Ñ)
  11.         Err.Clear
  12.         Msg = False
  13.     End If
  14.     Startday = Format(xDate, "YYYYMMDD")
  15.     Startmonth = Format(xDate, "YYYYMM")
  16.         '¤U¸üºô¯¸ªººô§}
  17.     With Sh.QueryTables.Add(Connection:="URL;http://www.twse.com.tw/ch/trading/exchange/MI_INDEX/genpage/Report" & Startmonth & "/A112" & Startday & "ALLBUT0999_1.php?select2=ALLBUT0999&chk_date=" & Format(xDate, "E/MM/DD"), Destination:=Range("A3"))
  18.         .RefreshStyle = xlOverwriteCells                                '§ì¨úºô­¶ªº²Ä10­Óªí®æ§@¬°¶×¤J¸ê®Æ
  19.         .WebTables = "10"
  20.         .Refresh BackgroundQuery:=False                                 '·í¤é(©|¥¼¦³¸ê®Æ:¿ù»~)
  21.         If Application.CountA(Sh.QueryTables(1).ResultRange) = 0 Then   '¥ð¥« ¨S¦³¸ê®Æ
  22.             Msg = True
  23.             GoTo EX
  24.         End If
  25.     End With
  26.     For Each Wb In Workbooks
  27.         For Each Ws In Wb.Sheets
  28.            Set Stock = Sh.[A:A].Find(Ws.Name, lookat:=xlWhole)
  29.             If Not Stock Is Nothing Then
  30.                 Stock.Offset(, 2).Resize(, 14).Copy
  31.                 With Ws
  32.                     With .Range("a" & .Rows.Count).End(xlUp).Offset(1)
  33.                         .Cells = xDate
  34.                         .Offset(, 1).PasteSpecial xlPasteValuesAndNumberFormats
  35.                     End With
  36.                 End With
  37.             End If
  38.         Next
  39.     Next
  40.     Sh.Parent.Close False           'Ãö³¬: ·s¬¡­¶Ã¯ªº²Ä¤@­Ó¤u§@ªí
  41. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¥»©«³Ì«á¥Ñ GBKEE ©ó 2016-4-26 10:25 ½s¿è

¦^´_ 9# BigDog
2016/4/26 §ó·s
  1. Option Explicit
  2. Sub ¹d¦ëºô_¸³ºÊ«ùªÑ()
  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("¿é¤JªÑ²¼¥N¸¹ :  ", "ªÑ²¼¥N¸¹", 2303)
  6.     xMonth = InputBox("¿é¤J¦~¤ë :  ", "¦~¤ë", 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("ªÑ²¼¥N¸¹", 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
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 14# omit
§A¥i¸Õ¸Õ¬Ý,¦p¤£¦æ¥i¤W¶ÇÀɮ׬ݬÝ
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 19# yopoyuan
±N§Aªºµo°Ý¦X¨Ö¦b[«ü©w¤U¸ü3¦~¾ú¥vªÑ»ùªº¸ê®Æ] ,½Ð±q²Ä1©«¬Ý°_.
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

        ÀR«ä¦Û¦b : ªY½à§O¤H´N¬O²øÄY¦Û¤v¡C
ªð¦^¦Cªí ¤W¤@¥DÃD