標題:
如何用陣列寫大量資料運算
[打印本頁]
作者:
oak0723-1
時間:
2010-9-3 20:58
標題:
如何用陣列寫大量資料運算
如附件
於sheet1的b欄有300筆資料
於f欄也有300比資料
希望b欄乘上f欄的答案顯示於h欄
如何用陣列寫?
作者:
oobird
時間:
2010-9-3 21:22
Sub yy()
[h2:h302] = [b2:b302*f2:f302]
End Sub
作者:
oak0723-1
時間:
2010-9-3 21:51
回復
2#
oobird
啥???
這樣就可以???
感恩喔~~~
作者:
gstone
時間:
2010-12-12 20:35
很簡潔的寫法~~~
想請教版主的是
假設需求同原問題,但資料長度不確定,也就是:
B欄及F欄的資料有N列
B,F的乘積呈現於H欄
也能用此中括號的陣列寫法嗎?
謝謝解惑~
作者:
Hsieh
時間:
2010-12-12 22:56
回復
4#
gstone
中括號是OLE寫法
必須是常數名稱
不可使用變數
所以變動範圍的話你必須使用定義名稱
定義3個名稱
x=OFFSET(Sheet1!$B$2,,,COUNTA(Sheet1!$B:$B),)
y=OFFSET(Sheet1!$F$2,,,COUNTA(Sheet1!$B:$B),)
z=OFFSET(Sheet1!$H$2,,,COUNTA(Sheet1!$B:$B),)
程式碼
Sub nn()
[Z].Value = [x*y]
End Sub
作者:
gstone
時間:
2010-12-14 00:27
謝謝Hsieh版主
已了解中括號有限制。
剛才測試6萬多筆資料
若是變動範圍
用定義名稱比用迴圏寫入陣列
速度快了5、6倍
呵~很好的方法~~~
作者:
gstone
時間:
2010-12-14 00:57
試出不用定義名稱的寫法:
Range("H2:H" & [B65536].End(xlUp).Row) = [B2:B65536*F2:F65536]
雖不明其因,但計算結果及速度和定義名稱一樣。
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)