Board logo

標題: [發問] QueryTables 查詢股票問題 [打印本頁]

作者: morrishou    時間: 2016-4-3 22:46     標題: QueryTables 查詢股票問題

各位高手專家好

小弟在使用QueryTable 時,
會在連續查詢數筆資料之後突然發生 400 的錯誤,而造成資料一直查不完,想請教是發生什麼問題呢?
程式碼和附檔如下 感謝回覆

Sub 抓取股票資料()
    Dim StartTime
    Dim i
    Dim j
    Dim StockNumber As String '股票代號
   
    i = 2
   
    If 確認工作表存在("Temp") <> True Then
        Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = "Temp"
    End If
   
    Application.ScreenUpdating = False
        
    清除工作表 ("Temp")
   
    Set Tempsheet = Sheets("Temp")
   
    Do While Sheet1.Cells(i, 1) <> ""
         If Sheet1.Cells(i, 2) = "" Then
         
                StockNumber = Sheet1.Cells(i, 1)
                GetCurrentPrice (StockNumber)
        End If
      
                    Sheet1.Cells(i, 2) = StockName
                    Sheet1.Cells(i, 3) = CurrentPrice
                    Sheet1.Cells(i, 4) = PriceChange
                    Sheet1.Cells(i, 5) = StockQuantity
        i = i + 1
    Loop
   
    Application.StatusBar = "股票資料抓取完成"
    Application.ScreenUpdating = True

    Sheet1.Activate
    Sheets("Temp").Delete
End Sub

Sub GetCurrentPrice(StockNumber As String)

    Dim ur As String

    Application.StatusBar = "取得股票 " & StockNumber & " 股價資料中......"
   
    ur = "https://tw.finance.yahoo.com/q/q?s=" & StockNumber
   ' MsgBox ur
   
        Tempsheet.Range("A:L").Clear

        With Tempsheet.QueryTables.Add(Connection:="URL;" & ur, Destination:=Tempsheet.Range("A1"))
            .WebSelectionType = xlSpecifiedTables
            .WebFormatting = xlWebFormattingNone
            .WebTables = "6"
            .Refresh BackgroundQuery:=False
            .Delete
         End With
   
       StockName = Tempsheet.Cells(3, 1)
       CurrentPrice = Tempsheet.Cells(3, 3)
       PriceChange = Tempsheet.Cells(3, 6)
       StockQuantity = Tempsheet.Cells(3, 7)

End Sub

[attach]23711[/attach]
作者: GBKEE    時間: 2016-4-4 06:46

回復 1# morrishou
  1. 表單己經顯示;不能再以強制回應的方式顯示此表單 (錯誤 400)
複製代碼
附檔沒有表單,2003下執行你的程式沒看到(錯誤 400)




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