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

WEB¬d¸ß§ï¦¨XMLHTTP

WEB¬d¸ß§ï¦¨XMLHTTP

½Ð°ÝWED¬d¸ß¦p¦ó§ï¦¨XMLHTTP¬d¸ß

WED¬d¸ß.zip (280 KB)

¦^´_ 1# BANK870

    ¬O³o¼Ë¶Ü?
   
    Sub byXMLhttp_Test()
      
      Dim sh As Worksheet
      Dim t!, i%, j%, k%
      Dim myXML As Object, myHTML As Object, myTable, URL$
      
      URL = "http://norway.twsthr.info/StockHolders.aspx?stock=1102"
       Set sh = Worksheets("Temp")
      Set myXML = CreateObject("Microsoft.XMLHTTP")
      Set myHTML = CreateObject("HTMLFile")
      
      t = timer
      With myXML
          .Open "GET", URL, False
            .setRequestHeader "Cache-Control", "no-cache"
            .setRequestHeader "Pragma", "no-cache"
          .send
          Do While .Status <> 200
             DoEvents
             If timer - t > 3 Then Exit Do
          Loop
          If .Status <> 200 Then MsgBox "No successful web connection", vbOKOnly: Exit Sub
           myHTML.body.innerHTML = .responsetext
      End With
      Set myTable = myHTML.getelementsbytagname("TABLE")(10)
      
      With myTable

            k = 1
            ReDim arDATA(.Rows.Length, .Rows(3).Cells.Length)
            
            For i = 1 To .Rows.Length
                  On Error Resume Next
                  For j = 3 To .Rows(3).Cells.Length
                        
                        arDATA(k, j - 2) = .Rows(i - 1).Cells(j - 1).innertext
                  Next
                  If Err.Number = 0 Then k = k + 1
            Next
            On Error GoTo 0
      End With

      sh.Cells.Clear
      sh.[A1].Resize(UBound(arDATA), UBound(arDATA, 2)) = arDATA
      
      Set myXML = Nothing
      Set myHTML = Nothing
      Set myTable = Nothing
End Sub

TOP

ÁÂÁ¤j¤j½Ð°Ý¤j¤j³o¬q»yªk§Ú¦³ÂI¤£À´¥i¥H±Ð§Ú¶Ü?
        Do While .Status <> 200
             DoEvents
             If timer - t > 3 Then Exit Do
          Loop
          If .Status <> 200 Then MsgBox "No successful web connection", vbOKOnly: Exit Sub
           myHTML.body.innerHTML = .responsetext
      End With
      Set myTable = myHTML.getelementsbytagname("TABLE")(10)
      
      With myTable

            k = 1
            ReDim arDATA(.Rows.Length, .Rows(3).Cells.Length)
            
            For i = 1 To .Rows.Length
                  On Error Resume Next
                  For j = 3 To .Rows(3).Cells.Length
                        
                        arDATA(k, j - 2) = .Rows(i - 1).Cells(j - 1).innertext
                  Next
                  If Err.Number = 0 Then k = k + 1
            Next
            On Error GoTo 0
      End With

      sh.Cells.Clear
      sh.[A1].Resize(UBound(arDATA), UBound(arDATA, 2)) = arDATA

TOP

¦^´_ 3# BANK870

       1. ¦^µ¹¹ï¤è®É½Ð«ö "¦^´_" ¤G¦r¡A¹ï¤è¤~·|¦¬¨ì©«¤lªº«H®§
       2. ¥H¤U³o¤@¬q¬O¦bµ¥­Ô¸ê®Æ¬O§_¤w³Æ§´¡A°²¦p3¬í¤º¥¼³Æ§´´N¥ý©ñ±ó¡A
            ¦ý³o¥u¬O¹êÅç¡Aºô­¶¤è¶Ç»¼¸ê®Æ®É´Á¬O¤£¬Oµ¹ª¬ºA«H®§³o¤@¥ó¨ÆÁÙ­n¾Ç²ß¡C
           ©Ò¥H¥H¤U³o¤@¬q¥i¥H§R°£ ¸Õ¸Õ¬Ý
           Do While .Status <> 200
                DoEvents
                If timer - t > 3 Then Exit Do
          Loop

       3. ºô­¶ªº³o¤@­Óªí¸ê®Æ¦C¦C¶¡¦³¾î¹j½u³y¦¨Åª¨ú¸ê®Æ¿ù»~¡A©Ò¥H¥Î on error resume next ¸õ¹LŪ¨úÁקK¿ù»~
      
         ¥H¤W½Ð°Ñ¦Ò

TOP

        ÀR«ä¦Û¦b : ¡i®É¤é²öªÅ¹L¡j¤@­Ó¤H¦b¥@¶¡°µ¤F¦h¤Ö¨Æ¡A´Nµ¥©ó¹Ø©R¦³¦hªø¡C¦]¦¹¥²¶·»P®É¶¡Ävª§¡A¤Á²ö¨Ï®É¤éªÅ¹L¡C
ªð¦^¦Cªí ¤W¤@¥DÃD