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

[µo°Ý] ¦³Ãö¥æ©ö©Ò¿Ä¸ê¨é¾lÃB¸ê®Æ¬d¸ßºô­¶

[µo°Ý] ¦³Ãö¥æ©ö©Ò¿Ä¸ê¨é¾lÃB¸ê®Æ¬d¸ßºô­¶

¥i¥H½Ð±Ð¤@¤U¥æ©ö©Ò¿Ä¸ê¨é¾lÃB¸ê®Æ

­ìºô§}¬°¡Ghttp://www.twse.com.tw/ch/trading/exchange/MI_MARGN/MI_MARGN.php

¨ú±o¸ê®Æºô§}¬°¡Ghttp://www.twse.com.tw/ch/trading/exchange/MI_MARGN/genpage/Report201508/A11220150811_1.php?select2=&chk_date=104/08/11

¦ý12¤é¤§«á¬d¸ß¤º®e¬°µL¸ê®Æ¡A·Q½Ð°Ý¦p¦óª¾¹D·sºô§}¬°¦ó¡H

¦³¦P¼ËªººÃ°Ý...
¤£¹L§Ú­nªº¥u¦³¿Ä¸ê¿Ä¨÷¾lÃB
³o¨â¤Ñµo²{­ì¨Ó¥Î excel §ì¿Ä¸ê¿Ä¨÷¾lÃB url ¤£¯à¥Î¤F...

­ì¨Óªº:  (¥H 2015/8/12¬°¨Ò)
http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/genpage/Report201508/A11220150812MS.php?select2=MS&chk_date=104/08/12
¥i¥H¨ú±o "«H¥Î¥æ©ö²Î­p"³oÃþªº¸ê®Æ =>´N¬O¿Ä¸ê¿Ä¨÷¾lÃB
¦ý³o¨â¤Ñ³o­Óurl ·|§ä¤£¨ì A11220150812MS.php

¦ý¬O¦pªG±N "MS" §ï¦¨ "01" (¿Ä¸ê¿Ä¨é·JÁ`(¤ôªd¤u·~)), ¤]´N¬O
http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/genpage/Report201508/A1122015081201.php?select2=MS&chk_date=104/08/12
«h¥i¥H¥¿½T¨ú±o¤ôªdÃþªÑªº¸ê®Æ.

½Ð°Ý¦U¦ì¤j¤j¡A¸Ó¥Î­þºØ url ¨ú±o "«H¥Î¥æ©ö²Î­p" ³oÃþªº¸ê®Æ..
·PÁ¡I¡I·PÁ¡I¡I

TOP

¦^´_ 1# a68951
¦¹¬°ieÂIÀ»ªk¡A¬í¼Æ½Ð¦Û¦æ­×§ï
¤é´Á½Ð¦Û³]¬°ÅܼƧY¥i
  1. Sub ex()

  2.     With CreateObject("internetexplorer.application")
  3.         .Visible = True
  4.         .Navigate "http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/MI_MARGN.php"
  5.         Do Until .ReadyState = 4
  6.             DoEvents
  7.         Loop
  8.         
  9.         .Document.getElementById("date-field").Value = "104/08/12" '¶ñ¤J
  10.          
  11.         '---------¡A¤º«Øªºfireevent ªºonchange¥¢®Ä¡A§ï¥Î½Õ¥Îjsªº¤èªk--------
  12.         Set evt = .Document.createEvent("HTMLEvents")
  13.         evt.initEvent "change", True, False
  14.         Set lst = .Document.all("selectType") 'optionªºname¬OselectType¡A¦ýgetElementsByNameµLªk³B²z¡A­nall¤~¦æ
  15.         lst.selectedIndex = 1
  16.         lst.dispatchEvent evt
  17.    
  18.         .Document.all("query-button").Click


  19.          Do While .ReadyState <> 4 Or .Busy: DoEvents: Loop

  20.         Application.Wait Now + TimeValue("00:00:5")
  21.         Stop
  22.         
  23.         'For Z = 0 To 10
  24.         'MsgBox .Document.getElementsByTagName("table")(Z).innerText
  25.         'Next
  26.             Stop
  27.         Set hTable = .Document.getElementsByTagName("table")(4) '²Ä4­Ótable
  28.         tt = hTable.Rows.Length
  29.         qq = hTable.Rows(2).Cells.Length

  30.             With ActiveSheet
  31.                 For i = 3 To hTable.Rows.Length - 1 '«e3­Ó¬O¼ÐÃD»PªÅ¥Õ¸õ¹L
  32.                     For j = 0 To hTable.Rows(i).Cells.Length - 1
  33.                         .Cells(i - 2, j + 1) = hTable.Rows(i).Cells(j).innerText
  34.                     Next
  35.                 Next
  36.             End With

  37.         .Quit
  38. '        MsgBox "OK"
  39.     End With
  40.    
  41. End Sub
½Æ»s¥N½X

TOP

¤Ó·PÁ¤F~¥ý¦¬¤U¤F~

TOP

¤£¦n·N«ä~§Ú¶]¤F¤@¤U´£¨Ñªºµ{¦¡½X¡A¤j§ï²z¸Ñ¤F¡A
«e­±¥ý¦Û°Ê°õ¦æºô­¶°õ¦æ«öÁ䬰¥þ³¡table¡A
±µµÛ§ä¥X¦³­þ¨Çtable¡A§ì²Ä¥|­Ótable¸ê®Æ¡A
§ä¥XÄæ¦C¡A¦ý²Ä¥|­Ótable¥u¦³¤@¦C¡A¨S¦³Äæ¡A
À³¸Ó¬O¨S·j¨ìªº·N«ä¡A¬O§_ªí¥Ü³o¤èªk§ì¤£¨ìtable(4)?

ÁÙ¬O«Ü·PÁ¡A¦hÁÂ~

TOP

¦^´_ 5# a68951

table 4  ¨ä¹ê¬O²Ä¤­­Ó¡Aexcel ¬O±q0¶}©l



¤£¬O¨S¦³Äæ¦Ó¬O«e­±ªºÄæ¦ì¦³¦X¨Ö»P«á­±ªºtalbe¤¤ªºÄæ¦ìªø«×¤£¤@¸m

¤U­±¬O­×§ï¹Lªºµ{¦¡½X
  1. Sub ex()
  2.     Application.ScreenUpdating = False  '°±¤î §ó·sSheet®É µe­±¡A¥[³t¹Bºâ
  3.     Application.DisplayAlerts = False  '°±¤î §R°£Sheet®É ¹w³]ªºÄµ§i
  4.     Cells.Clear
  5.     With CreateObject("internetexplorer.application")
  6.         .Visible = True
  7.         .Navigate "http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/MI_MARGN.php"
  8.         Do Until .ReadyState = 4
  9.             DoEvents
  10.         Loop
  11.         
  12.         .Document.getElementById("date-field").Value = "104/08/12" '¶ñ¤J
  13.          
  14.         '---------¡A¤º«Øªºfireevent ªºonchange¥¢®Ä¡A§ï¥Î½Õ¥Îjsªº¤èªk--------
  15.         Set evt = .Document.createEvent("HTMLEvents")
  16.         evt.initEvent "change", True, False
  17.         Set lst = .Document.all("selectType") 'optionªºname¬OselectType¡A¦ýgetElementsByNameµLªk³B²z¡A­nall¤~¦æ
  18.         lst.selectedIndex = 1
  19.         lst.dispatchEvent evt
  20.    
  21.         .Document.all("query-button").Click


  22.          Do While .ReadyState <> 4 Or .Busy: DoEvents: Loop

  23.         Application.Wait Now + TimeValue("00:00:5")
  24. '        Stop
  25.         
  26.         'For Z = 0 To 10
  27.         'MsgBox .Document.getElementsByTagName("table")(Z).innerText
  28.         'Next
  29.         Set hTable = .Document.getElementsByTagName("table")(4) '²Ä4­Ótable


  30.                 For i = 0 To hTable.Rows.Length - 1 '«e3­Ó¬O¼ÐÃD»PªÅ¥Õ¸õ¹L
  31.                     For j = 0 To hTable.Rows(i).Cells.Length - 1
  32.                         If j = 0 And i > 2 Then

  33.                                 Cells(i + 1, j + 1) = "'" & hTable.Rows(i).Cells(j).innerText

  34.                             Else
  35.                                 Cells(i + 1, j + 1) = hTable.Rows(i).Cells(j).innerText
  36.                         End If
  37.                     Next
  38.                 Next


  39.         .Quit
  40.     End With
  41.    
  42.     Range("A3:B3").Insert Shift:=xlToRight
  43.     Range("A2:B2").Select
  44.     Selection.Cut
  45.     Range("A3").Select
  46.     ActiveSheet.Paste
  47.     Range("E2:F2").Select
  48.     Selection.Cut
  49.     Range("O3").Select
  50.     ActiveSheet.Paste
  51.     Range("A1").Select
  52.     Range("D2:h2").Insert Shift:=xlToRigh
  53.    
  54.         Application.ScreenUpdating = True  '°±¤î §ó·sSheet®É µe­±¡A¥[³t¹Bºâ
  55.         Application.DisplayAlerts = True '°±¤î §R°£Sheet®É ¹w³]ªºÄµ§i
  56.    
  57. End Sub
½Æ»s¥N½X

TOP

Sub AAA()

Sheets("¤W¥«").Select
    Range("B1").Select
    Sheets("¤W¥«¿Ä¸ê¾lÃB").Select
    Cells.Select
    Selection.ClearContents
    Sheets("¤W¥«").Select
    Selection.Copy
    Sheets("¤W¥«¿Ä¸ê¾lÃB").Select
    Range("A1").Select
    ActiveSheet.Paste
   
   
   

  
   Dim y, m, d, param As String ' «Å§i y, m, d, param ¬°¦r¦êÅܼÆ
    y = Sheets("¤W¥«¿Ä¸ê¾lÃB").Range("B2") ' ¦è¤¸¦~
    m = Format(Sheets("¤W¥«¿Ä¸ê¾lÃB").Range("B3"), "00") ' ¤ë¡A¨Ï¥ÎFormat¨ç¼Æ±j¨î¤Q¦ì¼Æ¸É0
    d = Format(Sheets("¤W¥«¿Ä¸ê¾lÃB").Range("B4"), "00") ' ¤é¡A¨Ï¥ÎFormat¨ç¼Æ±j¨î¤Q¦ì¼Æ¸É0
    param = (y - 1911) & "/" & m & " ' ¥Á°ê¦~/¤ë/¤é"



    Application.ScreenUpdating = False  '°±¤î §ó·sSheet®É µe­±¡A¥[³t¹Bºâ
    Application.DisplayAlerts = False  '°±¤î §R°£Sheet®É ¹w³]ªºÄµ§i
    Cells.Clear
    With CreateObject("internetexplorer.application")
        .Visible = True
        .Navigate "http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/MI_MARGN.php"
        Do Until .ReadyState = 4
            DoEvents
        Loop
        
        .Document.getElementById("date-field").Value = param '¶ñ¤J
         
        '---------¡A¤º«Øªºfireevent ªºonchange¥¢®Ä¡A§ï¥Î½Õ¥Îjsªº¤èªk--------
        Set evt = .Document.createEvent("HTMLEvents")
        evt.initEvent "change", True, False
        Set lst = .Document.all("selectType") 'optionªºname¬OselectType¡A¦ýgetElementsByNameµLªk³B²z¡A­nall¤~¦æ
        lst.selectedIndex = 1
        lst.dispatchEvent evt
   
        .Document.all("query-button").Click


         Do While .ReadyState <> 4 Or .Busy: DoEvents: Loop

        Application.Wait Now + TimeValue("00:00:5")
'        Stop
        
        'For Z = 0 To 10
        'MsgBox .Document.getElementsByTagName("table")(Z).innerText
        'Next
        Set hTable = .Document.getElementsByTagName("table")(4) '²Ä4­Ótable


                For i = 0 To hTable.Rows.Length - 1 '«e3­Ó¬O¼ÐÃD»PªÅ¥Õ¸õ¹L
                    For J = 0 To hTable.Rows(i).Cells.Length - 1
                        If J = 0 And i > 2 Then

                                Cells(i + 1, J + 1) = "'" & hTable.Rows(i).Cells(J).innerText

                            Else
                                Cells(i + 1, J + 1) = hTable.Rows(i).Cells(J).innerText
                        End If
                    Next
                Next


        .Quit
    End With
   
    Range("A3:B3").Insert Shift:=xlToRight
    Range("A2:B2").Select
    Selection.Cut
    Range("A3").Select
    ActiveSheet.Paste
    Range("E2:F2").Select
    Selection.Cut
    Range("O3").Select
    ActiveSheet.Paste
    Range("A1").Select
    Range("D2:h2").Insert Shift:=xlToRigh
   
        Application.ScreenUpdating = True  '°±¤î §ó·sSheet®É µe­±¡A¥[³t¹Bºâ
        Application.DisplayAlerts = True '°±¤î §R°£Sheet®É ¹w³]ªºÄµ§i
   
End Sub


¤j¤j½Ð°Ý³o¸Ó«ç»ò§ï·í¤Ñªº
·Pı§Úªº¶]«ÜºC
½ÐÀ°§Ú¦£¤@¤UÁÂÁÂ

TOP

        ÀR«ä¦Û¦b : ¡i¦æµ½­n¤Î®É¡j¦æµ½­n¤Î®É¡A¥\¼w­n«ùÄò¡C¦p¿N¶}¤ô¤@¯ë¡A¥¼¿N¶}¤§«e¤d¸U¤£­n°±º¶¤õ­Ô¡A§_«h­«¨Ó´N¤Ó¶O¨Æ¤F¡C
ªð¦^¦Cªí ¤W¤@¥DÃD