返回列表 上一主題 發帖

[發問] 網頁資料下載成pdf異常地慢?

回復 10# 准提部林

嗨~
感謝回覆!
看完這些程式碼又多學了一些東西 :P
dim 後面的$和&是指定型別的意思吧?

經過測試
使用get只有第一次有效
post則能一直獲取當前時間
不過get後post依然有效
可是不了解為什麼....?

另外一時興起就試著把程式碼簡化如下XD
  1. Sub 測試_1()
  2. Dim QcURL$
  3. On Error GoTo 101
  4. QcURL = "http://www.post.gov.tw/post/internet/index.jsp"
  5. With CreateObject("Microsoft.XMLHTTP")
  6.      .Open "post", QcURL, False
  7.      .send
  8.      test1 = Split(Split(.responseText, "台灣時間:</span> <span class='time'>&nbsp;")(1), "&nbsp;GMT+8:00  </span></td>")(0)
  9. End With
  10. [A65536].End(xlUp)(2) = Replace(Replace(test1, "&nbsp", ""), ";", "")
  11. 101: End Sub
複製代碼

TOP

回復 11# lalalada

1.dim 後面的$和&是指定型別的意思吧?
__可以參考超級版主的說明:http://forum.twbts.com/redirect. ... 22366&ptid=3820

2.〔get〕〔post〕為何有差?
__不是excel及vba正科,根本不懂其機制,看過超級版主的程式碼非常道地而專業,或許可以提供專業知識分享!
  另,在網址上加入變動參數,使用〔get〕也可抓出最新數據,但可能無法適用所有的網址,例如:
  QcURL = "http://www.post.gov.tw/post/internet/index.jsp?" & Rnd
  這也是知其然而不知其所以然,大概ie有自動校正網址的原因吧!(猜)

3.測試碼因從幾個子程序中湊成,一時將就;經貴手精簡後,看起來清爽許多!^ ^
  因為有反覆取指定字串需求,一般會以子程序或function來呼叫,約略如下:
Sub 取得指定字串()
Dim uTxt$, T1$, T2$
uTxt = "所在地:台灣,日期:102年5月19日,星期別:星期日,時間:12:52:24(TM)"
T1 = "日期:": T2 = ",星期"
MsgBox Get_String(uTxt, T1, T2)
T1 = "時間:": T2 = "(TM)"
MsgBox Get_String(uTxt, T1, T2)
End Sub

Function Get_String(xStr$, xT1$, xT2$) As String
Dim X1%, X2%
X1 = InStr(xStr, xT1)
If X1 > 0 Then X2 = InStr(X1 + Len(xT1), xStr, xT2)
If X2 = 0 Then Exit Function
Get_String = Mid(xStr, X1 + Len(xT1), X2 - X1 - Len(xT1))
End Function

非正統的程式碼,看看就好!

TOP

回復 12# 准提部林

哦哦了解! 感謝你~

加入亂數有效是因為?後面的東西就是使用post時丟都進去的參數
既然丟了參數
對方伺服器就會回應 所以可以取得最新資料
因為它實際上就跟post一樣
不適用的情況同理

看來get是去取得暫存檔(?)

TOP

        靜思自在 : 有智慧才能分辨善惡邪正;有謙虛才能建立美滿人生。
返回列表 上一主題