標題:
[發問]
字串中沒有包含某字元用法
[打印本頁]
作者:
v03586
時間:
2016-4-17 02:41
標題:
字串中沒有包含某字元用法
平時我們寫VBA 要找出關鍵字用法都會用Like
If .Cells(i, "A") Like "*AAA*" Then
.Rows(i).Delete
複製代碼
A欄位 有AAA字串則刪除
如果我要改成 如果A欄位 有AAA字串保留
其餘沒有的刪除怎麼寫呢??
If .Cells(i, "A") Like "*AAA*" Then
下一段???? 其餘刪除
作者:
Kubi
時間:
2016-4-17 08:51
回復
1#
v03586
將
If .Cells(i, "A") Like "*AAA*" Then
改為
If InStr(.Cells(i, "A").Value, "AAA") = 0 Then
用InStr函數,可做為字串比對的判斷:
若判斷式等於0表示沒有符合資料,反之(<>0)則表示有符合的資料
InStr函數的使用法請參照VBA的官方說明
作者:
准提部林
時間:
2016-4-17 10:12
Like 判斷結果為 True 或 False,
反向, 則可改為
If .Cells(i, "A") Like "*AAA*" = False Then .Rows(i).Delete
或
If Not .Cells(i, "A") Like "*AAA*" Then .Rows(i).Delete
平常習慣用 InStr , 其用法與工作表函數 Find 類似, 只是其參數相反:
=Find(關鍵字, 被比對字串)
SS = InStr(被比對字串, 關鍵字)
Like 另個好處, 可以更多方式模糊比對,
例如:
"AAA*"
"*AAA"
"AAA*B"
作者:
v03586
時間:
2016-4-17 11:34
回復
3#
准提部林
這樣這行的意思會變成假如A欄位沒有AAA 就刪掉嗎?
我跑程式時...變成全部刪光光@@
我想表達的意思是...保留如下關鍵字的部分 其餘反黃部分刪除..
[attach]23887[/attach]
For i = .Range("A65536").End(xlUp).Row To 2 Step -1
If Not .Cells(i, "A") Like "*AAA*" Or _
Not .Cells(i, "A") Like "*BBB*" Or _
Not .Cells(i, "A") Like "*CCC*" Or _
Not .Cells(i, "A") Like "*DDD*" Or _
Not .Cells(i, "A") Like "*EEE*" Or _
Not .Cells(i, "A") Like "*FFF*" Then
.Rows(i).Delete
End If
Next
複製代碼
作者:
准提部林
時間:
2016-4-17 12:52
回復
4#
v03586
OR 任一
AND 全部
多條件要確認用哪一個?
作者:
v03586
時間:
2016-4-17 13:01
回復
5#
准提部林
了解了!!!感謝指點!! 原來是這個小細節...!!!
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)