台灣最大程式設計社群網站
線上人數
779
 
會員總數:244540
討論主題:188696
歡迎您免費加入會員
討論區列表 >> office VBA / WinOS >> 如何在Excel VBA迴圈中加入timeout則next?
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
如何在Excel VBA迴圈中加入timeout則next?
價值 : 20 QP  點閱數:179 回應數:2

樓主

Matt
門外漢
0 2
12 0
發送站內信

請教版上各位高手,我在Excel寫了一個VBA,它會載入機台上的xml,可是有時候會遇到機台沒開機,或是該機台沒有設定這個Model,程式因為找不到就會卡在那一段很久。
是不是有辦法在迴圈中加入語法,如果超過設定的時間還沒讀取到xml則放棄及Next到下個項目?
程式如下,目前可正常執行,只是因為數量比較多,所以一卡住就要等一段時間,麻煩各位高手幫忙,感激不盡~



Sub Comparison()
Dim web As String
Dim folder As String
Dim path As String
Dim tool_id As String
Dim model As String
Dim CCD As String

Call CLNXML

web = "http://web.corpnet.xxx.com/"
folder = "/recipe/Line/Recipe/"
path = "/Func/Model_"
model = Sheet1.Range("B1")

r = Application.WorksheetFunction.CountA(Sheets("Comparison").Range("B:B"))

For i = 6 To r
On Error Resume Next

tool_id = Sheet1.Cells(i, 2)
CCD = Sheet1.Cells(i, 3)

ActiveWorkbook.XmlImport URL:=tcweb & tool_id & folder & model & path & CCD & ".xml", ImportMap:=Nothing, Overwrite:=True, Destination:=Sheet1.Cells(i, 4)

Next


Call find_diff
Call find_empty

Columns("D:DD").Select
Columns("D:DD").EntireColumn.AutoFit


End Sub

搜尋相關Tags的文章: [ VBA ] , [ 迴圈 ] , [ Timeout ] ,
本篇文章發表於2019-01-21 17:48
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

yi
檢舉此回應
https://stackoverflow.com/questions/25428611/vba-check-if-file-from-website-exists


Function URLExists(url As String) As Boolean
Dim Request As Object
Dim ff As Integer
Dim rc As Variant

On Error GoTo EndNow
Set Request = CreateObject("WinHttp.WinHttpRequest.5.1")

With Request
.Open "GET", url, False
.Send
rc = .StatusText
End With
Set Request = Nothing
If rc = "OK" Then URLExists = True

Exit Function
EndNow:
End Function

if URLExists(xml url) then
ActiveWorkbook.XmlImport URL:=tcweb & tool_id & folder & model & path & CCD & ".xml", ImportMap:=Nothing, Overwrite:=True, Destination:=Sheet1.Cells(i, 4)

end if



沒有實際run過,純示意圖
本篇文章回覆於2019-01-24 14:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

yi
檢舉此回應
主要是利用http 的request 來判定是否有資源存在 ,有才作importxml的動作
本篇文章回覆於2019-01-24 14:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.