[問題] VBA尋找特定文字並刪除文字之前的row

作者: hans50316 (漢斯)   2019-07-12 11:56:04
(若是和其他不同軟體互動之問題 請記得一併填寫)
軟體:
版本:excel 2016
在A column某一格會有文字寫start,每次都不一定
舉例:某一次是在A15出現了start,然後我想要找出A15後,將前面的1-14row全部刪掉
請問這個該怎麼寫?
作者: soyoso (我是耀宗)   2018-07-12 11:56:00
看要以迴圈來判斷是否為"start",或是range.find搜尋再以該迴圈變數或是儲存格range.row,減1,rows("1:"&變數或列號減1).delete的方式刪掉
作者: hans50316 (漢斯)   2019-07-12 12:26:00
不好意思,搜尋的部分會了,請問刪除列的部分具體是怎麼寫的呢?https://i.imgur.com/O40YEDx.jpg
作者: soyoso (我是耀宗)   2019-07-12 12:29:00
以回文變數findrow來看,為 rows("1:" & findrow.row-1).delete
作者: hans50316 (漢斯)   2019-07-12 12:31:00
原來是這樣,感謝大師!
作者: cutekid (可愛小孩子)   2019-07-12 15:39:00
可能要注意 findrow 沒有搜尋 start 時的回傳值狀況^到
作者: soyoso (我是耀宗)   2019-07-12 18:32:00
其實也不只要考慮沒有搜尋到"start",還有當搜尋到是在第1列時,減1為0,也是會產生錯誤判斷為is nothing,接著range.row為1時exit sub
作者: cutekid (可愛小孩子)   2019-07-12 18:38:00
瞭解,findrow is nothing or findrow = 1 -> exit sub
作者: soyoso (我是耀宗)   2019-07-12 18:39:00
不是是以二個判斷先is nothing then exit sub,接著range.row=1 then exit sub
作者: cutekid (可愛小孩子)   2019-07-12 18:51:00
想問一下直接用 or 會有什麼問題
作者: soyoso (我是耀宗)   2019-07-12 18:54:00
如寫在一個判斷以條件1 or 條件2,因變數nothing變數.row上會產生錯誤,而出現 沒有設定物件變數或with區塊變數 的錯誤訊息
作者: cutekid (可愛小孩子)   2019-07-12 19:01:00
謝謝 s 大說明,我以為vba針對 boolean 判斷也有「短路」https://bit.ly/2LQHvh5

Links booklink

Contact Us: admin [ a t ] ucptt.com