返回列表 上一主題 發帖

[發問] 載入網頁資料的問題

回復 1# yuch8663

參考! 匯率.rar (20.08 KB)

TOP

回復 3# GBKEE
請教,關於 Public 及 Call

Call 模組名稱.程序名稱
NOTE:在程序中可以呼叫同一模組中的任何程序,但對於其它模組中的程序只能呼叫設定為Public的專案及模組程序。
上面這段說明是書上寫的,有點弄不懂。

我在執行時,雖不同模組,卻可呼叫不同模組,卻沒設定Public 的模組
請問這會有 偶爾 bug的問題?!

抑或.....我的範例,這樣兩次 call 程序的寫法是錯的
因為 "有時" 會出現第二次呼叫時,工作表反黑的畫面

另外一問:
若利用 IE下載網頁資料時,工作管理員的處理程序裡
時常有未關閉的iexplore.exe
這該怎麼處理??

Public提問.rar (9.33 KB)

TOP

本帖最後由 HSIEN6001 於 2013-7-1 10:31 編輯

回復 6# GBKEE

對!
類似這樣的VBA開啟的IE
我猜...是否沒有找到table時的On Error Resume Next
所留下來的,累積太多就影響後續下載
只能手動一個個強制 "結束處理程序" or 重開機
有沒有程序可以關閉那些殘留....
  1.     With CreateObject("InternetExplorer.Application")
  2.         .Visible = False
  3.         .navigate "http://...."
  4.         Do Until .readyState = READYSTATE_COMPLETE
  5.             DoEvents
  6.         Loop
  7.         Set A = .document.getElementsByTagName("table")
  8.         With Workbooks.Add
  9.             On Error Resume Next       '***有些table沒Rows資料會產生錯誤 不理會它,程式繼續走
  10.                 For ii = 11 To A.Length - 1
  11.                     For i = 0 To A(ii).Rows.Length - 1
  12.                         k = k + 1       '
  13.                         For j = 0 To 2
  14.                             Cells(k + 1, j + 1) = A(ii).Rows(i).Cells(j).innerText
  15.                         Next
  16.                     Next
  17.                 Next
  18.         End With
  19.         .Quit        '關閉網頁
  20.     End With
複製代碼
********************************
"有時" 會出現第二次呼叫時,工作表反黑的畫面.....那就不是有沒有加註Public的問題
我還沒找到為何 "有時" 工作表會反黑的原因

TOP

回復 9# stillfish00


原來是中斷後留下來的
SO...
如果我的顯示這樣iexplore.exe *32
應該是改為這樣?!
  1. Sub QuitIE()
  2.   Dim oShellWindows As Object, obj As Object
  3.   Set oShellWindows = CreateObject("Shell.Application").Windows

  4.   If oShellWindows.Count > 0 Then
  5.     For Each obj In oShellWindows
  6.       If StrComp(Right(obj.FullName, 16), "iexplore.exe *32", vbTextCompare) = 0 Then obj.Quit
  7.     Next
  8.   End If
  9. End Sub
複製代碼
But 剛剛測試...沒反應

TOP

回復 11# stillfish00
QueryTable 好樣知道耶!  ..^_^..
大略應用幾種方式排除:

(1)
Public Sub 刪除本活頁簿中所有的定義名稱()
For Each c In ActiveWorkbook.Names
   c.Delete
Next
End Sub
*****************
(2) 下載資料 to 新增活頁簿
*****************
(3)
新增"暫時"工作表
用完Delete該工作表
不留連線 QueryTable
*****************
(4)
Dim QueryTable_Name As String   
.
.
.
QueryTable_Name = .Name         
.
.Names(QueryTable_Name).Delete   
---------------------
不知道為甚麼,我 C:\
共有兩個Program Files
Program Files
Program Files (x86)
  1. Sub QuitIE()
  2. Dim oShellWindows As Object, obj As Object
  3. Set oShellWindows = CreateObject("Shell.Application").Windows
  4.     FullName = "C:\Program Files (x86)\Internet Explorer\iexplore.exe"
  5.    
  6.     If oShellWindows.Count > 0 Then
  7.         For Each obj In oShellWindows
  8.             If StrComp(Right(obj.FullName, 12), "iexplore.exe", vbTextCompare) = 0 Then obj.Quit
  9.         Next
  10.     End If
  11. End Sub
複製代碼
這樣對不對?!!
(對不起!!若程序很好笑,我是真的外行,有時隨便套用來的)
別見怪!!   ..^__^..

TOP

忘了!!
(附圖)
下載時,工作表反黑的現象是這樣

有沒有人知道這個問題的產生原因

TOP

        靜思自在 : 【時間如鑽石】時間對一個有智慧的人而言,就如鑽石般珍貴;但對愚人來說,卻像是一把泥土,一點價值也沒有。
返回列表 上一主題