[VBA ] 有效率的矩阵比对问题

楼主: yimean (温柔杀手)   2018-09-27 21:30:02
各位板上的大大晚上好
我的问题是我有两个一维矩阵
Head(8) 跟 Head_previous(8)
如果其中的1~4以及第七个元素都相同的话,就会判定是两笔一样的资料。
目前我的做法是暴力条件判断式。程式码如下。
If Head(7) = Head_previous(7) _
And Head(1) = Head_previous(1) _
And Head(2) = Head_previous(2) _
And Head(3) = Head_previous(3) _
And Head(4) = Head_previous(4) Then
MsgBox "储存失败,此笔资料与前笔资料一致。"
Exit Sub
Else
End If
是说都打完了,也只要打一次,所以还好,但是这样写感觉就有点Low。
想请问大大有没有直接两个矩阵相比的方法?
会不会比较有效率一点?
烦请高手拨冗解惑,感谢。
作者: MOONRAKER (㊣牛鹤鳗毛人)   2018-09-28 03:39:00
不会,这样最有效率,以后别人看也看得懂。比较“好看”的方法是写一个function专门比较里面建一个表1,2,3,4,7,用for跑遍这个表每次拿到编号n 就从两个阵列里面取元素n出来比对比到不对就设旗标为false 结束的时候看旗标内容但是这样太囉嗦了 除非你可以掌握这里面每一部分知道为什么要那样写 不然照现在这样就好
作者: paul60209 (我是保罗小小)   2018-09-28 08:58:00
简单一点的写法喔...把你现在里面的Else拿掉XDDDD
作者: ferretwind (FF)   2018-09-28 11:38:00
如果把and拿掉换成巢状的if的话效率会增加吗?这样只要其中一层不符合就跳出去了,不用比较所有条件
作者: MOONRAKER (㊣牛鹤鳗毛人)   2018-09-28 15:39:00
一秒要跑一百万次再来考虑那一点效率。
作者: LPH66 (-6.2598534e+18f)   2018-09-30 11:15:00
如果真的很想要这种行为的话, 改用 AndAlso 可以达成
作者: MOONRAKER (㊣牛鹤鳗毛人)   2018-10-01 16:03:00
那个东东只有.NET才有 VBA是没有的

Links booklink

Contact Us: admin [ a t ] ucptt.com