返回列表 上一主題 發帖

[發問] keyword的條件若達2種以上,該如何建立語法?

[發問] keyword的條件若達2種以上,該如何建立語法?

請問下列語法,keyword的條件若達2種以上,該如何建立語法?麻煩賜教,感謝。
Sub BBB()
keyword = "AW1"      
For i = 7 To 26
    If Cells(i, 1) Like "*" & keyword & "*" Then   
        Cells(i, 3) = ""
        Cells(i, 4) = ""
        Cells(i, 5) = ""
        Cells(i, 6) = ""
End Sub

請問下列語法,keyword的條件若達2種以上,該如何建立語法?麻煩賜教,感謝。
Sub BBB()
keyword = "AW1"  ...
keny1021 發表於 2022-7-22 13:40


不好意思,看不出需求為何? 請問方便附上檔案且說明一下,謝謝

TOP

回復 2# samwang


您好:補上附件.麻煩您

dsa.zip (52.52 KB)

TOP

回復  samwang


您好:補上附件.麻煩您
keny1021 發表於 2022-7-22 17:28

A欄關鍵字有AW1及AW2時讓C:F欄資料為空白
將keyword = "AW" 即可,謝謝

TOP

回復 4# samwang


您好:謝謝回覆。

若新增BW2作為關鍵字的條件,這樣要如何呈現結果呢? 再麻煩了

dsa1.zip (75.09 KB)

TOP

回復  samwang


您好:謝謝回覆。

若新增BW2作為關鍵字的條件,這樣要如何呈現結果呢? 再麻煩了
keny1021 發表於 2022-7-25 10:02


用您原來的修改如下,謝謝
另外建議,資料多時可以將資料裝到數組,這樣效率比較快

Sub BBB()
keyword = "AW"
keyword2 = "BW1"
For i = 7 To 26
    If Cells(i, 1) Like "*" & keyword & "*" Or Cells(i, 1) Like "*" & keyword2 & "*" Then
        Cells(i, 3) = ""
        Cells(i, 4) = ""
        Cells(i, 5) = ""
        Cells(i, 6) = ""
End If
Next
End Sub

TOP

回復 5# keny1021

用數組方式,請測試看看,謝謝
Sub test()
Dim Arr, T$, i&, j%
Arr = Range([f7], [a65536].End(3))
For i = 1 To UBound(Arr)
    T = Arr(i, 1)
    If InStr(T, "AW") Or InStr(T, "BW1") Then
        For j = 3 To 6: Arr(i, j) = "": Next
    End If
Next
Range("a7").Resize(UBound(Arr), 6) = Arr
End Sub

TOP

回復 7# samwang


    請教前輩
1.Arr = Range([f7], [a65536].End(3))
2.Arr = Range([a7], [f65536].End(3))

這兩種語法匡列儲存格的範圍都一樣,一般都用第2種方式
為什麼前輩用第1種方式?
有什麼特殊意義嗎?

謝謝前輩!

TOP

回復  samwang


    請教前輩
1.Arr = Range([f7], [a65536].End(3))
2.Arr = Range([a7], [f65536] ...
Andy2483 發表於 2022-7-26 12:33


如您說的都一樣,只是考慮是以a欄為主而這樣寫而已,謝謝

TOP

回復 9# samwang


    謝謝前輩指導
Arr = Range([a7], Cells([a65536].End(xlUp).Row, "f"))
以前都用這樣的方式來確保定義的儲存格範圍,不會因為[b7:f26]儲存格資料變動而異動

以a欄為主的意思是
a欄是標題欄,所以a欄的最後列數通常會等於整個工作表最後列數,
所以用的右上到左下的方式匡列
是這意思嗎?

TOP

        靜思自在 : 靜坐常恩己過、閒談莫論人非。
返回列表 上一主題