返回列表 上一主題 發帖

[發問] 擷取上櫃股價行情~遇到非交易日即跳出錯誤訊息!

回復 9# cudui
這可自己試試看 不行再說

TOP

以G大的概念延伸..

在出問題的那一列之前,增加:
"On Error Resume Next"

就能跳過錯誤訊息了!!
新手上路

TOP

回復 5# chen_cook

謝謝COOK大,
我以你的語法改寫就可以用了!!
新手上路

TOP

本帖最後由 cudui 於 2012-4-22 14:12 編輯

再請問一下~~

我原先抓的是html的資料,可以不需再處理CSV檔匯入的問題,
(Connection:="URL;http://www.otc.org.tw/ch/stock/aftertrading/otc_quotes_no1430/SQUOTE_AL_" & myear & mmon & nowday & ".html" _

但是,使用html遇到的狀況是~
我擷取其他交易日的時候都沒問題,但一旦要匯入"2/10","4/10"...等n月 10日的交易資料時,
個股行情除檔名外,其餘就會是一片空白...(但n月20日.30日都沒問題,所以應該不是"0"的問題)
而我檢查實際連結也都正確,可以正確連結到該網頁
(http://www.otc.org.tw/ch/stock/aftertrading/otc_quotes_no1430/SQUOTE_AL_1010410.html)
而使用CSV則無此問題~~

有沒有大大可以幫忙解惑一下這到底是因為什麼????
謝謝!

附上原始碼如下:


  1. '上櫃個股歷史資料
  2.    With ActiveSheet.QueryTables.Add(Connection:="URL;http://www.otc.org.tw/ch/stock/aftertrading/otc_quotes_no1430/SQUOTE_AL_" & myear & mmon & nowday & ".html" _
  3.         , Destination:=ActiveCell.Offset(2, 0))
  4.    
  5.         .FieldNames = True
  6.         .RowNumbers = False
  7.         .FillAdjacentFormulas = True
  8.         .PreserveFormatting = True
  9.         .RefreshOnFileOpen = False
  10.         .BackgroundQuery = True
  11.         .RefreshStyle = xlInsertDeleteCells
  12.         .SavePassword = False
  13.         .SaveData = False
  14.         .AdjustColumnWidth = True
  15.         .RefreshPeriod = 0
  16.         .WebSelectionType = xlSpecifiedTables
  17.         .WebFormatting = xlWebFormattingNone
  18.         .WebTables = "1,2,3,4"
  19.         .WebPreFormattedTextToColumns = True
  20.         .WebConsecutiveDelimitersAsOne = True
  21.         .WebSingleBlockTextImport = False
  22.         .WebDisableDateRecognition = False
  23.         .WebDisableRedirections = False
  24.         On Error Resume Next
  25.         .Refresh BackgroundQuery:=False
  26.       
  27.     End With
複製代碼
新手上路

TOP

回復 12# cudui
[在出問題的那一列之前,增加: "On Error Resume Next"]
在那程序中 預計會發生錯誤的程式碼 前ˇ的任一列 增加: "On Error Resume Next" 皆可以

回復 14# cudui
http://www.otc.org.tw/ch/stock/a ... OTE_AL_1010402.html
1010402.html 這網頁 的月份 日期都是兩位數
Connection:="URL;http://www.otc.org.tw/ch/stock/a ... s_no1430/SQUOTE_AL_" & myear & mmon & nowday & ".html
mmon & nowday  須先處裡為兩位數
  1. mmon = Format(mmon, "00")
  2. nowday = Format(nowday, "00")
複製代碼

TOP

回復  cudui
[在出問題的那一列之前,增加: "On Error Resume Next"]
在那程序中 預計會發生錯誤的程式碼 ...
GBKEE 發表於 2012-4-22 15:23


G大:

我用 [A1]="URL;http://www.otc.org.tw/ch/stock/aftertrading/otc_quotes_no1430/SQUOTE_AL_" & myear & mmon & nowday & ".html" 去看,
得出來的連結仍是http://www.otc.org.tw/ch/stock/aftertrading/otc_quotes_no1430/SQUOTE_AL_1010410.html沒錯,
而且,
如果真是二位數的問題的話,
不應該N月的20日 / 30日都可以抓到資料,
但10日則抓不出來...

另外,我在之前也有加入判斷式~ N<9則前面加"0",
並加寫  nowday = Left(nowday & "0", 2)...
可是結果都一樣~~
新手上路

TOP

回復 16# cudui
應是這網頁的問題 幫你看了一下 3/1 ,3/2, 4/10  都無法匯入
可改用  Workbooks.Open ("http://www.otc.org.tw/ch/stock/aftertrading/otc_quotes_no1430/SQUOTE_AL_" & myear & mmon & nowday & ".CSV")  匯入

TOP

回復  cudui
應是這網頁的問題 幫你看了一下 3/1 ,3/2, 4/10  都無法匯入
可改用  Workbooks.Open ("ht ...
GBKEE 發表於 2012-4-22 17:14



謝謝G大!
我有改用CSV確定沒有問題,
只是不懂為何用"HTML"才會出現此一狀況....好奇是程式哪裡沒寫好而已...
新手上路

TOP

回復 14# cudui


    依該原始網頁編寫之內容,好像是把,csv的檔轉.html輸出晝面所致,你若用匯入網頁方式會回應你網頁無回應之訊息!!
    (所以才會跟你說抓錯網頁了,因為它本身就沒有.html這個網頁吧!!)櫃買中心的網頁是.php不是.html抓法不同一般的
    .html之前就有跟你提過了:@ .... 你會問其它的沒有問題啊!!我也不知道為什麼,:dizzy: 重點是抓到你要的資料吧!!若
    .csv可正確get data,反正是excel幫忙做,看到資料就好:D !!!.html無法匯入標題不是嗎??

TOP

回復 19# chen_cook


    php查詢後出來的是html的網頁,另外才有csv下載的function..
    所以我也不知道實際是誰先誰後...
    php抓data現在沒問題了,
    就只剩好奇為什麼n月10日的html data撈不出來而已 ( 若單純連結**0410.html 可以看到資料,但vba就是抓不下來~~)

    試了很久,破不了關...奇毛雞有點不爽罷了!!!
    果然"好奇會害死一隻貓"啊!!~~:funk:
新手上路

TOP

        靜思自在 : 好事要提得起,是非要放得下,成就別人即是成就自己。
返回列表 上一主題