請問這一段 日轉月的寫法哪邊有問題
資料怪怪的
Sub 日轉月K()
' **************************************************
' 使用工作表函數 weeknum ' 判斷 是否為同一週的營業日資料
' 但2003版 使用 weeknum 須於增益集中 加入VBA分析箱
' 周轉月K , 可以依樣畫葫蘆
' **************************************************
Dim rowss As Integer
' Dim rowsc As Integer
Dim Mday(1 To 2) As Variant, Rng As Range, i As Integer
If Sheets("工作表1").Range("d6") = "" Then Exit Sub '故意設定的判斷參數,避免無數值還計算
' 股價資料起始row
rowss = 6
With 工作表1
' 確認股價資料有無
If .Range("A" & rowss) = "" Then Exit Sub
' 周K表頭
.Range("R" & rowss - 1 & ":W65536").Clear
.Range("R" & rowss - 1).Resize(1, 7) = Array("月數", "日期", "開盤", "最高", "最低", "收盤", "成交量")
' .Range("L" & rowss - 1) = "開盤"
' .Range("M" & rowss - 1) = "最高"
' .Range("N" & rowss - 1) = "最低"
' .Range("O" & rowss - 1) = "收盤"
' .Range("P" & rowss - 1) = "成交量"
' 第一筆周K判別用
' rowsc = rowss ' 周K起始row
' .Range("K" & rowss) = .Range("A" & rowss)
' .Cells(rowsc, 11) = .Cells(rowss, 1)
' .Cells(rowsc, 13) = .Cells(rowss, 3)
' .Cells(rowsc, 14) = .Cells(rowss, 4)
i = 6
Do
Mday(1) = Evaluate("MONTH(""" & .Cells(i, 1) & """)")
Mday(2) = Evaluate("MONTH(""" & .Cells(i, 1) & """)") ' 導入年度的月數
Set Rng = .Cells(i, 1).Resize(, 8) ' 這日期的資料
Do
Set Rng = Union(.Cells(i, 1).Resize(, 8), Rng) ' 加入同週一日期的資料
i = i + 1 ' 下一個 日期
Mday(2) = Evaluate("MONTH(""" & .Cells(i, 1) & """)") ' 導入年度的週數
If IsError(Mday(2)) Then Exit Do ' 沒日期 傳回錯誤值
Loop Until Mday(1) <> Mday(2) ' 換周
' Rng.Select ' 看看是否為同一週日期的資料
' 日轉周K資料
.Range("R" & rowss).Resize(1, 7) = Array(Mday(1), Rng(Rng.Rows.Count, 1).Text, Rng(1, 2), Application.Max(Rng.Columns(3)), Application.Min(Rng.Columns(3)), Rng(Rng.Rows.Count, 5), Format(Application.Sum(Rng.Columns(8)), "000,000"))
rowss = rowss + 1 ' 下一 日轉周K資料
Loop Until IsError(Mday(2))
End With
End Sub |