作者Kyuan (人生就是一堆BLA BLA)
看板Office
標題[算表] VBA 選取相連的相同值刪除
時間Fri Jun 9 23:31:44 2017
軟體: EXCEL VBA
版本: 2010
想要把 相連的相同值選取來刪除 以達成遊戲效果
示意圖 (內容值只會有 1 2 3 )
1 1 3 1 2 1 1 1 3 2
1 1 3 1 2 1 ==> 1 1 3 2
2 2 3 1 1 1 2 2 3
1 1 1 1 1 1 <
^
若我選擇最右下角的1
則會把除了左上四個1以外之 1 做選取或刪除的動作
原先嘗試之VBA寫法為
刪除點選格後,搜尋範圍內空白格之上下左右是否有相同值
若相同則刪除,再尋找下一個空白格 LOOP
但遇到的問題為 若相連的相同值過多,
會重複搜尋到很多次 (已經搜尋過的) 空白格
(即若找到之空白格附近有相同值,刪除後,又會重複搜尋N+新的1個空格)
>>因為loop的寫法為再次尋找下一個空格<<
導致無法完全刪除相連的相同值,
故想請問是否有快速的演算,可一次選取 相連的相同值?? ( 不相連的同值則不選)
或是可以避免搜尋重複之空格
以上,若有任何參考解法懇請指教,謝謝
※ 編輯: Kyuan (1.168.131.113), 06/09/2017 23:37:34
1F:→ soyoso: 測試以所選取儲存格比較上下左右,相同時刪除且記錄該儲存 06/10 13:28
2F:→ soyoso: 格位置字串,迴圈於該取得儲存格字串,在比較相連的儲存格 06/10 13:29
3F:→ soyoso: 是否有相同值,有,同上記錄該儲存格字串,直至無儲存格字 06/10 13:30
4F:→ soyoso: 串被記錄時結束 06/10 13:31
5F:→ soyoso: 如儲存格於第1列或第1欄因比較上或左會有錯誤產生,也請判 06/10 13:35
6F:→ soyoso: 斷排除 06/10 13:35
8F:→ Kyuan: 感謝~ 已成功運作 06/13 16:56