- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
13#
發表於 2011-5-9 13:54
| 只看該作者
回復 12# ko310kmo
可用欄位的英文字母表示 Cells(1, "J") =>Range("J1")
最低價竟然比收盤價高 修正如下
- Sub Ex()
- Dim t As Date, i%, R%, P%
- With Sheet1
- R = .[B1].End(xlDown).Row
- Do
- ReDim AR(1 To 6, 2 To R)
- t = Time
- For i = 2 To R
- AR(1, i) = TimeSerial(Hour(Time), Minute(Time), 0) '每分鐘時間
- AR(2, i) = .Cells(i, 3) '每分鐘的開盤價
- AR(3, i) = .Cells(i, 3) '每分鐘的最高價
- AR(5, i) = .Cells(i, 3) '每分鐘的最低價
- 'AR(6, i) = .Cells(i, 4) '每分鐘的成交量
- Next
- If Minute(Time) = Minute(t) Then
- Do While Minute(Time) = Minute(t)
- For i = 2 To R
- DoEvents
- AR(3, i) = IIf(.Cells(i, 3) > AR(3, i), .Cells(i, 3), AR(3, i)) '每分鐘的最高價
- AR(5, i) = IIf(.Cells(i, 3) < AR(5, i), .Cells(i, 3), AR(5, i)) '每分鐘的最低價
- ' AR(6, i) = AR(6, i) + .Cells(i, 4) '每分鐘的成交量
- Next
- Loop
- For i = 2 To R
- AR(4, i) = .Cells(i, 3) '每分鐘的收盤價
- P = Sheets(.Cells(i, 2).Text).Cells(Row.Count, "J").End(xlUp).Row + 1
- Sheets(.Cells(i, 2).Text).Range("J" & P).Resize(1, 6) = Application.Index(Application.Transpose(AR), i - 1)
- Next
- End If
- Loop Until Time <= #1:30:00 PM#
- End With
- End Sub
複製代碼
建議此程序 用ThisWorkbook的程序 自動執行
Private Sub Workbook_Open()
Ex
End Sub |
|