[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