[算表]矩陣vba四則運算

看板Office作者 (阿翔)時間4年前 (2020/03/21 22:50), 4年前編輯推噓0(0013)
留言13則, 2人參與, 4年前最新討論串1/1
軟體: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://www.ptt.cc/bbs/Office/M.1584802225.A.5FC.html

03/22 08:21, 4年前 , 1F
如不以工作表內的儲存格暫存的話,想到的是設個二維陣列變
03/22 08:21, 1F

03/22 08:21, 4年前 , 2F
數,巢狀迴圈取出z1和z2的值,運算後寫入所設的陣列變數內
03/22 08:21, 2F

03/22 08:48, 4年前 , 3F
如不要迴圈的話,變數=evaluate("index(6*a1:j10+2*a1:j10
03/22 08:48, 3F

03/22 08:48, 4年前 , 4F
,)")
03/22 08:48, 4F

03/22 08:53, 4年前 , 5F
或是變數=evaluate("6*a1:j10+2*a1:j10")
03/22 08:53, 5F

03/22 22:21, 4年前 , 6F
謝謝s大,雖然看起來不是想要的結果
03/22 22:21, 6F

03/22 22:22, 4年前 , 7F
但另外想請教,上面的2和6如果想抓某個儲存格
03/22 22:22, 7F

03/22 22:23, 4年前 , 8F
該怎麼寫?evaluate裡面好像只能放定值
03/22 22:23, 8F

03/22 22:27, 4年前 , 9F
並非只能放定值,就是以字串連結方式range(..) & "*a1:j10
03/22 22:27, 9F

03/22 22:27, 4年前 , 10F
"...
03/22 22:27, 10F

03/22 22:37, 4年前 , 11F
另外覺得不是想要的結果方面就提出有哪方面不符合的,才能
03/22 22:37, 11F

03/22 22:37, 4年前 , 12F
看是否有其他方式
03/22 22:37, 12F
※ 編輯: simon552614 (36.225.183.2 臺灣), 03/23/2020 21:11:59

03/23 21:15, 4年前 , 13F
更新內文,請s大或大家指教
03/23 21:15, 13F
文章代碼(AID): #1UTYcnNy (Office)