作者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