Board logo

標題: [發問] 沒有設定物件變數或 With區塊變數 [打印本頁]

作者: av8d    時間: 2017-8-8 16:46     標題: 沒有設定物件變數或 With區塊變數

  1. Public a As Boolean

  2. Sub StartTimer()
  3.     Range("E7") = "自動更新:開啟"
  4.     If a = True Then End
  5.     DoEvents
  6.     Application.OnTime Now + TimeValue("00:00:01"), "StartTimer2", Schedule:=True
  7. End Sub

  8. Sub StartTimer2()
  9.     DoEvents
  10.     Call NewsOne '你的SUB
  11.     Call StartTimer
  12. End Sub

  13. Sub StopTimer()
  14.     a = IIf(a = True, False, True)
  15.     Range("E7") = "自動更新:關閉"
  16.     On Error Resume Next
  17.     Application.OnTime Now + TimeValue("00:00:05"), "StartTimer2", Schedule:=False
  18. End Sub

  19. Sub NewsOne()
  20.     Dim url As String, lastRow As Long
  21.     Dim XMLHTTP As Object, html As Object, objResultDiv As Object, objH3 As Object, link As Object
  22.     Dim start_time As Date
  23.     Dim end_time As Date

  24.     lastRow = Range("A" & Rows.Count).End(xlUp).Row

  25.     Dim cookie As String
  26.     Dim result_cookie As String

  27.     start_time = Time
  28.     Debug.Print "start_time:" & start_time

  29.     For i = 1 To lastRow

  30.         url = "https://www.google.co.in/search?&q=" & Cells(i, 1) & "&rnd=" & WorksheetFunction.RandBetween(1, 10000)

  31.         Set XMLHTTP = CreateObject("MSXML2.serverXMLHTTP")
  32.         XMLHTTP.Open "GET", url, False
  33.         XMLHTTP.setRequestHeader "Content-Type", "text/xml"
  34.         XMLHTTP.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; rv:25.0) Gecko/20100101 Firefox/25.0"
  35.         XMLHTTP.send

  36.             Set html = CreateObject("htmlfile")
  37.         html.body.innerHTML = XMLHTTP.ResponseText
  38.         Set objResultDiv = html.getelementbyid("rso")
  39.         Set objH3 = objResultDiv.getelementsbytagname("H3")(0)
  40.         Set link = objH3.getelementsbytagname("a")(0)


  41.         str_text = Replace(link.innerHTML, "<EM>", "")
  42.         str_text = Replace(str_text, "</EM>", "")

  43.         Cells(i, 7) = str_text
  44.         Cells(i, 8) = link.href
  45.         DoEvents
  46.     Next

  47.     end_time = Time
  48.     Debug.Print "end_time:" & end_time

  49.     Debug.Print "done" & "Time taken : " & DateDiff("n", start_time, end_time)
  50.     'MsgBox "done" & "Time taken : " & DateDiff("n", start_time, end_time)
  51. End Sub
複製代碼
中間這段網址https://www.google.co.in/search?&q=改成https://www.google.com.tw/search?&q=就會出現沒有設定物件變數或 With區塊變數
錯誤原因落在str_text = Replace(link.innerHTML, "<EM>", "")
還請老師們賜教,謝謝。
作者: Scott090    時間: 2017-8-12 06:54

回復 1# av8d


    假如這個網址 https://www.google.com.tw/search?&q=
不能像這個 https://www.google.co.in/search?&q=
一樣可以抓到東西"物件";就會出現 "沒有設定物件變數 .... "

僅做參考




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)