作者simon552614 (阿翔)
看板Office
標題[算表]矩陣vba四則運算
時間Sat Mar 21 22:50:19 2020
軟體:Excel
版本:2007
經過儲存格計算,假設sheet會有結果在A1:J10(實際大很多)
在vba裡面我用Z1=range("A1:J10")放進去矩陣
第二次計算,會再出現另一個結果在A1:J10
同理Z2=range("A1:J10")...Z3.Z4...
現在我想在vba裡面做Z1和Z2的線性組合
例如:6*Z1+2*Z2
請問有矩陣元素大量同時四則運算的方法嗎?
在sheet是可以做,但不想用sheet來當作矩陣的暫存地方
--------------------------------------------------------------
更新:今天想了一下把資料全部存起來變Z1.Z2...太耗記憶體
所以想變成以下,用程式表達一下,當然打在vba一定是報錯
Z, C_i is array, and C_0=0
for i=1 to 30
Z = sheet1.range("A1:J10")
C_i = C_(i-1) + i* Z
next i
一直覺得vba應該可以做到矩陣對純量的直接計算,始終查不到
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.225.11.250 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1584802225.A.5FC.html
1F:→ soyoso: 如不以工作表內的儲存格暫存的話,想到的是設個二維陣列變 03/22 08:21
2F:→ soyoso: 數,巢狀迴圈取出z1和z2的值,運算後寫入所設的陣列變數內 03/22 08:21
3F:→ soyoso: 如不要迴圈的話,變數=evaluate("index(6*a1:j10+2*a1:j10 03/22 08:48
4F:→ soyoso: ,)") 03/22 08:48
5F:→ soyoso: 或是變數=evaluate("6*a1:j10+2*a1:j10") 03/22 08:53
6F:→ simon552614: 謝謝s大,雖然看起來不是想要的結果 03/22 22:21
7F:→ simon552614: 但另外想請教,上面的2和6如果想抓某個儲存格 03/22 22:22
8F:→ simon552614: 該怎麼寫?evaluate裡面好像只能放定值 03/22 22:23
9F:→ soyoso: 並非只能放定值,就是以字串連結方式range(..) & "*a1:j10 03/22 22:27
10F:→ soyoso: "... 03/22 22:27
11F:→ soyoso: 另外覺得不是想要的結果方面就提出有哪方面不符合的,才能 03/22 22:37
12F:→ soyoso: 看是否有其他方式 03/22 22:37
※ 編輯: simon552614 (36.225.183.2 臺灣), 03/23/2020 21:11:59
13F:→ simon552614: 更新內文,請s大或大家指教 03/23 21:15