- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
18#
發表於 2011-9-27 10:45
| 只看該作者
本帖最後由 GBKEE 於 2011-9-27 10:58 編輯
回復 16# spermbank
可以改成 Set CsvRange = OpCsv.Sheets(1).Columns(1).SpecialCells(xlCellTypeConstants).Offset(1)
Range ("A:A") =>Columns("A:A") 單欄 Columns(1)
Range ("A:B") >= Columns("A:B")
要怎麼先把第6欄(Volume)所有值都先除以1000再存入Sheet2呢?
AR = Application.Transpose(CsvRange) ->陣列從儲存格導入值時 每一維度的下限都是從1 開始 ->For i = 1 To UBound(AR)- AR = Application.Transpose(CsvRange)
- For i = 1 To UBound(AR)
- AR(i) = AR(i) / 1000
- Next
- TheRow.Offset(, 2).Resize(, CsvRange.Rows.Count) = AR
複製代碼 回復 17# spermbank - Sub Ex()
- Dim x As Double, i As Double, AA()
- x = Application.WorksheetFunction.CountA(Range("A:A")) '欄位有值範圍計算
- ReDim AA(2 To x, 1 To 4) '2 To x-> 第一維 指定從 2 到 X
- '1 To 4-> 第二維 指定從 1 到 4
- For i = 2 To x '配合陣列維度的上下限
- With Application
- 'With Application.WorksheetFunction '正統寫法
- AA(i, 1) = .Sum(Cells(i, 3).Resize(, 5)) / 5
- AA(i, 2) = .Average(Range("A" & i).Resize(, 20)) '20日-20個儲存格中的數值平均
- AA(i, 3) = .Average(Range("A" & i).Resize(, 60)) '60日
- AA(i, 4) = .Average(Range("A" & i).Resize(, 120)) '120日
- End With
- Next
- End Sub
- Sub Ex1()
- x = Application.WorksheetFunction.CountA(Range("A:A")) '欄位有值範圍計算
- Dim AA(2000, 3) '2000-> 第一維 0-2000 共20001個
- '3 -> 第二維 0-3 共4個
- For i = 2 To x
- AA(i - 2, 0) = (Cells(i, 3) + Cells(i, 4) + Cells(i, 5) + Cells(i, 6) + Cells(i, 7)) / 5
- AA(i - 2, 1) = Application.WorksheetFunction.Average(Range("A" & i & ": V" & i)) '20日-20個儲存格中的數值平均
- AA(i - 2, 2) = Application.WorksheetFunction.Average(Range("A" & i & ": BJ" & i)) '60日
- AA(i - 2, 3) = Application.WorksheetFunction.Average(Range("A" & i & ": DR" & i)) '120日
- Next
- End Sub
複製代碼 |
|