標題:
更新股市每日盤後行情最新資料
[打印本頁]
作者:
gelai01000001
時間:
2013-8-30 02:20
標題:
更新股市每日盤後行情最新資料
"如果股市當天休市,可自動更新有交易的最新日期"??請問如何修改程式
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
時間:
2013-8-30 04:50
回復
1#
gelai01000001
"如果股市當天休市,可自動更新有交易的最新日期"??請問如何修改程式
找全年行事曆當DATABASE先比對,確認否為假日再抓DATA...你已會高難度程序,這個你應該會寫才對!!
另一種是算週一到五不過會有例外,此方法還是要用到上述收尾!!!
作者:
gelai01000001
時間:
2013-9-1 22:52
chen_cook 前輩專家!感謝你幫忙抽空解惑。
可是你說的〈全年行事曆當DATABASE先比對〉,小學生還是不太懂呢!
因我上述的程式是網路上拼湊而來,VBA其實說真的我不是很了解。
如果照你說的方式?是否要使用
If Then
Elseif(敘述未股市休市的日期)
Else
end if
麻煩chen_cook 前輩專家指導!
作者:
chen_cook
時間:
2013-9-2 05:13
回復
3#
gelai01000001
[attach]15913[/attach]
我不是前輩...我也不會太深的EXCEL VAB....
依行事曆轉成一維陣列或一個DATDBASE(SHEET DATA可以方便隔年 UPDATE)
但還是會有例外如近日的防災假!!(事後再追加)
如何編寫你的方法是可行的(我的做法是比對若為假日就不去抓WEB DATA了,直接就結束了)
以上!!
作者:
GBKEE
時間:
2013-9-2 11:21
本帖最後由 GBKEE 於 2013-9-3 07:21 編輯
回復
3#
gelai01000001
Option Explicit
Sub 下載網站資料()
Dim Startmonth As String, Startday As String, xDate As Date, Msg As Boolean, Sh As Worksheet
Dim T As Date
T = Time
On Error Resume Next '程式執行中有錯誤時,不裡會繼續執行程式
xDate = Date '當日
'***************測試用
xDate = #9/8/2013# '休市日
'***************測試無誤後可刪除掉
Set Sh = ActiveSheet '指定工作表:此程式在任何模組中皆可用
EX:
If Err.Number <> 0 Or Msg = True Then '當日(尚未有資料:錯誤) 或 休市
xDate = xDate - 1 '往後退一日
Err.Clear
Msg = False
End If
Sh.UsedRange.Clear '清理工作表已使用的範圍
Startday = Format(xDate, "YYYYMMDD")
Startmonth = Format(xDate, "YYYYMM")
'下載網站的網址
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"))
.RefreshStyle = xlOverwriteCells '抓取網頁的第10個表格作為匯入資料
.WebTables = "10"
.Refresh BackgroundQuery:=False '當日(尚未有資料:錯誤)
If Err.Number <> 0 Then GoTo EX
If Application.CountA(Sh.QueryTables(1).ResultRange) = 0 Then '休市 沒有資料
Msg = True
GoTo EX
End If
End With
With Sh.UsedRange
.Font.Size = 12
.EntireColumn.AutoFit
End With
MsgBox "交易的最新日期 " & xDate & vbLf & Application.Text(Time - T, "費時 [SS] 秒")
End Sub
複製代碼
作者:
gelai01000001
時間:
2013-9-3 01:17
我將date的日期改為星期天的日期,程式會無止靜的跑回圈?
請問GBKEE超級版主,假如我更新的日期(Date)距離股市最後交易日超過1天以上,又該如何修改呢?感謝指導
Sub 下載網站資料()
Dim Startmonth As String, Startday As String, xDate As Date, Msg As Boolean, Sh As Worksheet
On Error GoTo EX '程式執行中有錯誤時跳到 EX: 繼續執行程式
xDate = Date '當日
Set Sh = ActiveSheet '指定工作表:此程式在任何模組中皆可用
EX:
If Err.Number <> 0 Or Msg = True Then '當日(尚未有資料:錯誤) 或 休市
[color=Red]xDate = xDate - 1 (應改為xDate = Date - 1)[/color] 假如休市超過1天以上(2,3,4,5,6,春節9天),又如何修改呢?
Err.Clear
Msg = False
End If
Sh.UsedRange.Clear '清理工作表已使用的範圍
Startday = Format(xDate, "YYYYMMDD")
Startmonth = Format(xDate, "YYYYMM")
'下載網站的網址
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"))
.RefreshStyle = xlOverwriteCells '抓取網頁的第10個表格作為匯入資料
.WebTables = "10"
.Refresh BackgroundQuery:=False '當日(尚未有資料:錯誤)
If Application.CountA(Sh.QueryTables(1).ResultRange) = 0 Then '休市 沒有資料
Msg = True
GoTo EX
End If
End With
With Sh.UsedRange
.Font.Size = 12
.EntireColumn.AutoFit
End With
End Sub
複製代碼
回復
5#
GBKEE
作者:
GBKEE
時間:
2013-9-3 07:19
回復
6#
gelai01000001
程式會無止盡的跑回圈?不會吧!是資料量大下載費時吧 !!
5#的程式碼已修正試試看
作者:
gelai01000001
時間:
2013-9-6 00:13
本帖最後由 GBKEE 於 2013-9-6 07:26 編輯
回復
7#
GBKEE
GBKEE感謝你這麼熱心抽空指導解惑!
丟啦!這才是我想阿ㄋㄟ!2013春節休假9天也可以呢!
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)