For i = 0 To myTable.Length - 1 For j = 0 To myTable(i).Cells.Length - 1 TempArray(i, j) = myTable(i).Cells(j).innerText Next j Next i
Sheets("temp").Activate If Err Then Err.Clear Sheets.Add(after:=ActiveSheet).Name = "temp" Else Sheets("temp").Cells.Clear End If Sheets("temp").Range(Cells(1, 1), Cells(myTable.Length, myTable(0).Cells.Length)) = TempArray()
End With
Set HTMLsourcecode = Nothing Set myTable = Nothing
1.網址 : http://money.finance.sina.com.cn/corp/go.php/vFD_ProfitStatement/stockid/601066/ctrl/part/displaytype/4.phtml 2.程式 : Sub Test() Dim Url As String, HTMLsourcecode As Object Set HTMLsourcecode = CreateObject("htmlfile")
Application.ScreenUpdating = False Sheets("temp").Activate If Err Then Err.Clear Sheets.Add(after:=ActiveSheet).Name = "temp" Else Sheets("temp").Cells.Clear End If
範例一、用sleep lib #If VBA7 Then Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal Milliseconds As LongPtr) #Else Public Declare Sub Sleep Lib "kernel32" (ByVal Milliseconds As Long) #End If Sub test1() For i = 1 To 10 Sleep 3000 '等3秒 '可加入亂數,讓時間不固定,模擬人工下載 Debug.Print i Next End Sub
範例二、用Application.Wait Sub test2() For i = 1 To 10 Debug.Print i Application.Wait (Now + TimeValue("0:00:02")) '等2秒 '可加入亂數,讓時間不固定,模擬人工下載 Next End Sub
範例三、348樓,另外寫副程式延遲
範例四、例如175樓、219樓…其它很多樓 程式中限制連續查詢的次數 or 無法查詢時 改用 Application.OnTime Now 排程,延後執行