看板 Visual_Basic 關於我們 聯絡資訊
各位板上的大大晚上好 我的問題是我有兩個一維矩陣 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://www.ptt.cc/bbs/Visual_Basic/M.1538055005.A.1C8.html
MOONRAKER: 不會,這樣最有效率,以後別人看也看得懂。 09/28 03:39
MOONRAKER: 比較「好看」的方法是寫一個function專門比較 09/28 03:40
MOONRAKER: 裡面建一個表1,2,3,4,7,用for跑遍這個表 09/28 03:41
MOONRAKER: 每次拿到編號n 就從兩個陣列裡面取元素n出來比對 09/28 03:42
MOONRAKER: 比到不對就設旗標為false 結束的時候看旗標內容 09/28 03:43
MOONRAKER: 但是這樣太囉嗦了 除非你可以掌握這裡面每一部分知道 09/28 03:43
MOONRAKER: 為什麼要那樣寫 不然照現在這樣就好 09/28 03:43
paul60209: 簡單一點的寫法喔...把你現在裡面的Else拿掉XDDDD 09/28 08:58
ferretwind: 如果把and拿掉換成巢狀的if的話效率會增加嗎? 09/28 11:38
ferretwind: 這樣只要其中一層不符合就跳出去了,不用比較所有條件 09/28 11:39
MOONRAKER: 一秒要跑一百萬次再來考慮那一點效率。 09/28 15:39
LPH66: 如果真的很想要這種行為的話, 改用 AndAlso 可以達成 09/30 11:15
MOONRAKER: 那個東東只有.NET才有 VBA是沒有的 10/01 16:03