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

ªÑ²¼¸ê®Æ¶×¤J¡Aµ{¦¡°õ¦æ¦³°ÝÃD

ªÑ²¼¸ê®Æ¶×¤J¡Aµ{¦¡°õ¦æ¦³°ÝÃD

¥»©«³Ì«á¥Ñ GBKEE ©ó 2016-6-17 05:03 ½s¿è

¼Ò¥éª©¤j½s§ï¤@­Óµ{¦¡

¦ý¶×¤J¦³®É·|°±¤î¤¤Â_¡A°±¤îªº¦ì¸m¤£¤@©w

§ÚÃhºÃ¬O°O¾ÐÅ餣¨¬¡A¸Ó¦p¦ó§ï©O¡H
  1. Sub ¾ú¥vªÑ»ù§ó·s()
  2.     Dim xTable As Object, k As Integer, c As Integer, r As Integer, rc As Integer, sn As Integer
  3.     Dim url As String, i As Integer, E As Object
  4.     With Sheets("Àç¹BÁZ®Ä")
  5.           .UsedRange.Clear
  6.     End With
  7.     Sheets("Á`ªí").Select
  8.     rc = Cells(Rows.Count, 1).End(xlUp).Row
  9.     For i = 5 To rc
  10.     sn = Cells(i, 1)

  11.     url = "http://goodinfo.tw/StockInfo/StockBzPerformance.asp?STOCK_ID=" & sn & " &YEAR_PERIOD=10&RPT_CAT=M_YEAR"
  12.          With CreateObject("InternetExplorer.application")
  13.         .Visible = True
  14.         .Navigate url

  15.         Do While .Busy Or .readyState <> 4: DoEvents: Loop
  16.         Set xTable = .Document.getElementsByTagName("TABLE")(11) '¸ê®Æ¦b³o
  17.         With Sheets("Àç¹BÁZ®Ä")

  18.             k = k + 1
  19.             For r = 0 To xTable.Rows.Length - 1
  20.                 For c = 0 To xTable.Rows(r).Cells.Length - 1
  21.                     .Cells(k, c + 1) = xTable.Rows(r).Cells(c).innertext
  22.                 Next
  23.                 k = k + 1
  24.             Next
  25.         End With
  26.         Set xTable = .Document.getElementsByTagName("TABLE")(13) '¸ê®Æ¦b³o
  27.         With Sheets("Àç¹BÁZ®Ä")

  28.             k = k + 1
  29.             For r = 0 To xTable.Rows.Length - 1
  30.                 For c = 0 To xTable.Rows(r).Cells.Length - 1
  31.                     .Cells(k, c + 1) = xTable.Rows(r).Cells(c).innertext
  32.                 Next
  33.                 k = k + 1
  34.             Next
  35.         End With
  36.         Set xTable = .Document.getElementsByTagName("TABLE")(19) '¸ê®Æ¦b³o
  37.         With Sheets("Àç¹BÁZ®Ä")

  38.             k = k + 1

  39.              For r = 0 To 3
  40.                 For c = 0 To xTable.Rows(r).Cells.Length - 1
  41.                     .Cells(k, c + 1) = xTable.Rows(r).Cells(c).innertext
  42.                 Next
  43.                 k = k + 1
  44.             Next
  45.         End With
  46.         .Quit
  47.     End With
  48.     Next
  49. End Sub
½Æ»s¥N½X

¦^´_ 1# caesar0125
  1. ¡yFor i = 5 To rc¡z ªº rc ¦pªG¶W¹L¤Q­Ó¥H¤W¡A·|µo¥Í¥H¤U¤§°T®§¡G
  2. ©Ò¥H«Øij¤£­n¤@¦¸µL¤îºÉªº·j´M¡A³Ì¦n¤À¦¸¡B¤À®É¬qªº¨Ó°õ¦æ¡C

  3. ¡uºô¯¸°»´ú¨ì±zªºÂsÄý¶q²§±`, ¥Ø«e¼È®ÉÃö³¬ªA°È, ½Ðµy«á¦A­«·s¬d¸ß¡v
½Æ»s¥N½X

TOP

¦^´_ 1# caesar0125
§Ú±Nµ{¦¡µyµy¾ã²z¤F¤@¤U¡A
¥[±j Focus ¨ì Sheets("Àç¹BÁZ®Ä")¡C
  1. Sub ¾ú¥vªÑ»ù§ó·s()
  2.     Dim xTable As Object, k As Integer, c As Integer, r As Integer, rc As Integer, sn As Integer
  3.     Dim url As String, i As Integer, E As Object
  4.    
  5.     Sheets("Á`ªí").Select
  6.     rc = Cells(Rows.Count, 1).End(xlUp).Row
  7.     k = 0
  8.    
  9.     With Sheets("Àç¹BÁZ®Ä")
  10.         .Select
  11.         .UsedRange.Clear
  12.     End With
  13.    
  14.     '  For i = 5 To rc
  15.     For i = 1 To 5
  16.         sn = Sheets("Á`ªí").Cells(i, 1)
  17.         url = "http://goodinfo.tw/StockInfo/StockBzPerformance.asp?STOCK_ID=" & sn & " &YEAR_PERIOD=10&RPT_CAT=M_YEAR"

  18.         With CreateObject("InternetExplorer.application")
  19.             .Visible = True
  20.             .Navigate url

  21.             Do While .Busy Or .readyState <> 4: DoEvents: Loop
  22.         
  23.             Set xTable = .Document.getElementsByTagName("TABLE")(11)    '  ¸ê®Æ¦b³o
  24.         
  25.             With Sheets("Àç¹BÁZ®Ä")
  26.                 k = k + 1
  27.                 For r = 0 To xTable.Rows.Length - 1
  28.                     For c = 0 To xTable.Rows(r).Cells.Length - 1
  29.                         .Cells(k, c + 1) = xTable.Rows(r).Cells(c).innertext
  30.                     Next
  31.                     k = k + 1
  32.                 Next
  33.             End With
  34.         
  35.             Set xTable = .Document.getElementsByTagName("TABLE")(13)    '  ¸ê®Æ¦b³o
  36.             With Sheets("Àç¹BÁZ®Ä")
  37.                 k = k + 1
  38.                 For r = 0 To xTable.Rows.Length - 1
  39.                     For c = 0 To xTable.Rows(r).Cells.Length - 1
  40.                         .Cells(k, c + 1) = xTable.Rows(r).Cells(c).innertext
  41.                     Next
  42.                     k = k + 1
  43.                 Next
  44.             End With
  45.         
  46.             Set xTable = .Document.getElementsByTagName("TABLE")(19)    '  ¸ê®Æ¦b³o
  47.             With Sheets("Àç¹BÁZ®Ä")
  48.                 k = k + 1
  49.                 '  For r = 0 To 3
  50.                 For r = 0 To xTable.Rows.Length - 1
  51.                     For c = 0 To xTable.Rows(r).Cells.Length - 1
  52.                         .Cells(k, c + 1) = xTable.Rows(r).Cells(c).innertext
  53.                     Next
  54.                     k = k + 1
  55.                 Next
  56.             End With
  57.             
  58.             .Quit
  59.         End With
  60.     Next
  61. End Sub
½Æ»s¥N½X

TOP

¦^´_ 1# caesar0125
A1.png
2016-6-7 10:59

TOP

¦^´_ 4# c_c_lai
¼Ó¤W¤j¤j

§ÚªºªÑ²¼²M³æ¦³50­Ó¡A¤À§å¸ê®Æ¸Ó¦p¦ó³B

§Úªºµ{¦¡¬O¦]¬°§Úªººô¸ô³t«×°ÝÃD¡H¦³®É®»¨ì²M³æ²Ä3¡B4­Ó¡A¦³®É¥i®»¨ì²Ä20´X­Ó

TOP

¦^´_ 5# caesar0125
§Ú¥ÎIE8 §ì¨ú¸ê®Æ¤]¦³§xÃø
§ï¥Î      CreateObject("msxml2.xmlhttp") + CreateObject("htmlfile")
¸Õ¬Ý¬Ý
  1. Sub goodinfo_¦X¨Ö°]³ø()
  2.     Dim xTable As Object, k As Integer, C As Integer, R As Integer, rc As Integer, sn As Integer
  3.     Dim url As String, i As Integer, E As Variant
  4.     Dim oXmlhttp As Object, oHtmldoc As Object, surl, op
  5.     'Sheets("Á`ªí").Select
  6.     rc = Sheets("Á`ªí").Cells(Rows.Count, 1).End(xlUp).Row
  7.     Sheets("Àç¹BÁZ®Ä").UsedRange.Clear
  8.     For i = 5 To rc
  9.         sn = Sheets("Á`ªí").Cells(i, 1)
  10.         url = "http://goodinfo.tw/StockInfo/StockBzPerformance.asp?STOCK_ID=" & sn & " &YEAR_PERIOD=10&RPT_CAT=M_YEAR"
  11.          Set oXmlhttp = CreateObject("msxml2.xmlhttp")
  12.          Set oHtmldoc = CreateObject("htmlfile")
  13.          With oXmlhttp
  14.             .Open "Get", url, False
  15.             .Send
  16.             oHtmldoc.write .responseText
  17.         End With
  18.         Set xTable = oHtmldoc.all.tags("TABLE")
  19.         With Sheets("Àç¹BÁZ®Ä")
  20.           '  .Cells.Clear
  21.             For Each E In Array(11, 13, 19) '11,13,19  "TABLE"
  22.                 k = k + 1
  23.                 For R = 0 To xTable(E).Rows.Length - 1
  24.                     For C = 0 To xTable(E).Rows(R).Cells.Length - 1
  25.                         .Cells(k, C + 1) = xTable(E).Rows(R).Cells(C).innertext
  26.                     Next
  27.                     k = k + 1
  28.                 Next
  29.             Next
  30.           End With
  31.     Next
  32. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¥»©«³Ì«á¥Ñ c_c_lai ©ó 2016-6-10 07:25 ½s¿è

¦^´_ 5# caesar0125
§A¸Õ¸Õ¼Ó¤W GBKEE ª©¤jªº¼Ò²Õ¡A
¨ä°õ¦æ®Ä²v»P³t«×«D±`ªº¨Î¡C ²¦³º
CreateObject("InternetExplorer.application")
¤§³B¸Ìªº½T¯Ó®É¹L¤[¡C

TOP

¦^´_ 6# GBKEE
½Ð±Ð±z¡A¦³¦n¦h¦^°õ¦æ¨ì
  1.         Set xTable = oHtmldoc.all.tags("TABLE")
  2.         With Sheets("Àç¹BÁZ®Ä")
  3.             '  .Cells.Clear
  4.             For Each E In Array(11, 13, 19) '11,13,19  "TABLE"
  5.                 k = k + 1
  6.                 For R = 0 To xTable(E).Rows.Length - 1
½Æ»s¥N½X
¤¤ªº   xTable(E).Rows.Length¡A «K²£¥Í¦p¤U¤§¿ù»~°T®§¡G
  1. °õ¦æ¶¥¬q¿ù»~ '91'
  2. ¨S¦³³]©wª«¥óÅܼƩΠWith °Ï°ìÅܼÆ
½Æ»s¥N½X
¬d¬Ý oXmlhttp.responseText : "<!DOCTYPE HTML>
<html lang="zh-TW">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <meta http-equiv="X-UA-Compatible" content="I
¤S¬Ý¤£¥X¦³¥ô¦óª¬ªp¡A ¦³®É xTable.length = 0 ©Î  xTable.length =  1 µ¥¡C

TOP

¦^´_ 8# c_c_lai
¥i¥[¤W¨¾¿ù
  1. Do
  2.             Set xTable = oHtmldoc.all.tags("TABLE")
  3.             Debug.Print xTable.Length, sn
  4.           ' If xTable.Length >= 19 Then Stop
  5.         Loop Until xTable.Length >= 19
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_  c_c_lai
¥i¥[¤W¨¾¿ù
GBKEE µoªí©ó 2016-6-10 10:27

¦pªG xTable.Length ¬°¹s¡A
Until xTable.Length >= 19 ·|¦p¦P¦º­J¦P
¥Ã»·¥X¤£¨Ó¡A©Ò¥H§Ú§ï¦¨
If xTable.Length >= 19 Then
     .
    .
End If
¤´µM¬O¤@±À
  1. 1             0             1437
  2. 2             0             1438
  3. 3             0             1439
  4. 4             0             1440
  5. 5             0             1441
½Æ»s¥N½X

TOP

        ÀR«ä¦Û¦b : °µ¸Ó°µªº¨Æ¬O´¼¼z¡A°µ¤£¸Ó°µªº¨Æ¬O·Mè¡C
ªð¦^¦Cªí ¤W¤@¥DÃD