- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
9#
發表於 2013-9-1 11:56
| 只看該作者
本帖最後由 GBKEE 於 2013-9-1 12:15 編輯
回復 8# donod - Option Explicit
- Sub Ex()
- Dim AR(), Rng As Range, i As Integer, A(1 To 6), T As Integer
- Dim RT(1 To 2) As Single '****指定變數型態
- ReDim AR(0)
- With Sheets("Sheet1")
- .[B:B].Replace "000", "00", xlPart '修改為時間格式
- AR(0) = .[A1:F1]
- Set Rng = .Range("b2")
- T = 14 - Abs(Minute(Rng) Mod 15) '距下一個15分鐘的分鐘數
- RT(1) = Rng + TimeValue("00:" & T)
- i = 1
- Do
- RT(2) = Rng.Offset(i)
- If RT(2) > RT(1) Or Rng.Offset(i, -1) <> Rng.Offset(, -1) Or Rng.Offset(i) = "" Then
- A(1) = Rng.Resize(i).Cells(1).Offset(, -1) 'Date
- A(2) = Rng.Cells(1).Text 'Time
- A(3) = Rng.Cells(1, 2) 'Open
- A(4) = Application.Max(Rng.Resize(i).Offset(, 2)) 'High
- A(5) = Application.Min(Rng.Resize(i).Offset(, 3)) 'Low
- A(6) = Rng.Resize(i).Offset(, 4).Cells(i) 'Close
- ReDim Preserve AR(UBound(AR) + 1)
- AR(UBound(AR)) = A
- Set Rng = Rng.Offset(i)
- T = 14 - Abs(Minute(Rng) Mod 15) '距下一個15分鐘的分鐘數
- RT(1) = Rng + TimeValue("00:" & T)
- i = 1
- Else
- i = i + 1
- End If
- Loop Until Rng.Offset(i) = ""
- .[J1].CurrentRegion = ""
- .[J1].Resize(UBound(AR) + 1, 6) = Application.Transpose(Application.Transpose(AR))
- End With
- End Sub
複製代碼 |
|