作者yimean (温柔杀手)
看板Visual_Basic
标题[VBA ] 有效率的矩阵比对问题
时间Thu Sep 27 21:30:02 2018
各位板上的大大晚上好
我的问题是我有两个一维矩阵
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。
想请问大大有没有直接两个矩阵相比的方法?
会不会比较有效率一点?
烦请高手拨冗解惑,感谢。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.195.98.141
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Visual_Basic/M.1538055005.A.1C8.html
1F:→ MOONRAKER: 不会,这样最有效率,以後别人看也看得懂。 09/28 03:39
2F:→ MOONRAKER: 比较「好看」的方法是写一个function专门比较 09/28 03:40
3F:→ MOONRAKER: 里面建一个表1,2,3,4,7,用for跑遍这个表 09/28 03:41
4F:→ MOONRAKER: 每次拿到编号n 就从两个阵列里面取元素n出来比对 09/28 03:42
5F:→ MOONRAKER: 比到不对就设旗标为false 结束的时候看旗标内容 09/28 03:43
6F:→ MOONRAKER: 但是这样太罗嗦了 除非你可以掌握这里面每一部分知道 09/28 03:43
7F:→ MOONRAKER: 为什麽要那样写 不然照现在这样就好 09/28 03:43
8F:推 paul60209: 简单一点的写法喔...把你现在里面的Else拿掉XDDDD 09/28 08:58
9F:推 ferretwind: 如果把and拿掉换成巢状的if的话效率会增加吗? 09/28 11:38
10F:→ ferretwind: 这样只要其中一层不符合就跳出去了,不用比较所有条件 09/28 11:39
11F:→ MOONRAKER: 一秒要跑一百万次再来考虑那一点效率。 09/28 15:39
12F:推 LPH66: 如果真的很想要这种行为的话, 改用 AndAlso 可以达成 09/30 11:15
13F:→ MOONRAKER: 那个东东只有.NET才有 VBA是没有的 10/01 16:03