返回列表 上一主題 發帖

更新股市每日盤後行情最新資料

更新股市每日盤後行情最新資料

"如果股市當天休市,可自動更新有交易的最新日期"??請問如何修改程式
Sub 下載網站資料()
   
    With Range(Cells(3, 1), Cells(1000, 16))
        .Clear
        .Delete
            
    End With
   
    Dim ptxt As String
        
        Startday = Left(Date, 4) & "0" & Mid(Date, 6, 1) & Right(Date, 2)  "如果股市當天休市,可自動更新有交易的最新日期"??請問如何修改程式
        Startmonth = Left(Date, 4) & "0" & Mid(Date, 6, 1)
        
        
        '下載網站的網址
        With ActiveSheet.QueryTables.Add(Connection:="URL;http://www.twse.com.tw/ch/trading/exchange/MI_INDEX/genpage/Report" & Startmonth & "/A112" & Startday & "ALLBUT0999_1.php?select2=ALLBUT0999&chk_date=" & Startday, Destination:=Range("A3"))
   
        ' xlOverwriteCells 表示覆蓋欄位
        .RefreshStyle = xlOverwriteCells
        ' 抓取網頁的第10個表格作為匯入資料
        .WebTables = "10"
        .Refresh BackgroundQuery:=False
        
        End With
    '將R2C1:R878C16範圍的儲存格字形調整為12
    Cells.Select
    Cells.Font.Size = 12

End Sub

煩請各位高手專家解惑,謝謝!

chen_cook 前輩專家!感謝你幫忙抽空解惑。
可是你說的〈全年行事曆當DATABASE先比對〉,小學生還是不太懂呢!
因我上述的程式是網路上拼湊而來,VBA其實說真的我不是很了解。

如果照你說的方式?是否要使用
If Then
Elseif(敘述未股市休市的日期)
Else
end if

麻煩chen_cook 前輩專家指導!

TOP

我將date的日期改為星期天的日期,程式會無止靜的跑回圈?
請問GBKEE超級版主,假如我更新的日期(Date)距離股市最後交易日超過1天以上,又該如何修改呢?感謝指導
  1. Sub 下載網站資料()
  2.     Dim Startmonth As String, Startday As String, xDate As Date, Msg As Boolean, Sh As Worksheet
  3.     On Error GoTo EX                        '程式執行中有錯誤時跳到 EX: 繼續執行程式
  4.     xDate = Date                            '當日
  5.     Set Sh = ActiveSheet                    '指定工作表:此程式在任何模組中皆可用
  6. EX:
  7.     If Err.Number <> 0 Or Msg = True Then   '當日(尚未有資料:錯誤) 或 休市
  8.         [color=Red]xDate = xDate - 1    (應改為xDate = Date - 1)[/color]     假如休市超過1天以上(2,3,4,5,6,春節9天),又如何修改呢?         
  9.         Err.Clear
  10.         Msg = False
  11.     End If
  12.     Sh.UsedRange.Clear                       '清理工作表已使用的範圍
  13.     Startday = Format(xDate, "YYYYMMDD")
  14.     Startmonth = Format(xDate, "YYYYMM")
  15.         '下載網站的網址
  16.     With Sh.QueryTables.Add(Connection:="URL;http://www.twse.com.tw/ch/trading/exchange/MI_INDEX/genpage/Report" & Startmonth & "/A112" & Startday & "ALLBUT0999_1.php?select2=ALLBUT0999&chk_date=" & Format(xDate, "E/MM/DD"), Destination:=Range("A3"))
  17.         .RefreshStyle = xlOverwriteCells                            '抓取網頁的第10個表格作為匯入資料
  18.         .WebTables = "10"
  19.         .Refresh BackgroundQuery:=False                             '當日(尚未有資料:錯誤)
  20.         If Application.CountA(Sh.QueryTables(1).ResultRange) = 0 Then  '休市 沒有資料
  21.             Msg = True
  22.             GoTo EX
  23.         End If
  24.     End With
  25.     With Sh.UsedRange
  26.         .Font.Size = 12
  27.         .EntireColumn.AutoFit
  28.     End With
  29. End Sub
複製代碼
回復 5# GBKEE

TOP

本帖最後由 GBKEE 於 2013-9-6 07:26 編輯

回復 7# GBKEE
GBKEE感謝你這麼熱心抽空指導解惑!
丟啦!這才是我想阿ㄋㄟ!2013春節休假9天也可以呢!

TOP

        靜思自在 : 布施如播種,以歡喜心滋潤種子,才會發芽。
返回列表 上一主題