作者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/cn.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