我有一個看起來像這樣的檔案:

我需要做的是使用 VBA 從范圍中洗掉每個單獨的“NA”。無需移動單元格。
我不能做(替換),因為其他字串中可能有“na”。我認為“Instr”不會出于同樣的原因作業。
我嘗試了幾種方法,我認為這些方法可行,但由于我無法理解的原因,它們沒有。
起初我嘗試了 Left Len,如下所示:
dim nb as workbook
for i = 2 to nb.sheets(1).cells(rows.count, 17).end(xlup).row
if left(range("Q" & i).value, 2, "NA", Len(range("Q" & i).value)) then
nb.sheets(1).range("Q" & i).value = ""
end if
next i
當那不起作用時,我嘗試了這個:
for i = 2 to nb.sheets(1).cells(rows.count, 17).end(xlup).row
if mid(range("Q" & i).value, 0 2, Len(range("Q" & i).value)) And _
Instr(1, (range"Q" & i).value), "NA") then
nb.sheets(1).range("Q" & i).value = ""
end if
next i
我還嘗試了許多其他方法來重新排列 Len、Left 和 Mid,但都沒有奏效。
即使不必使用 Left (mid) 和 Len 來完成解決方案,有沒有辦法這樣做?如果沒有,還有什么其他方法?
uj5u.com熱心網友回復:
如果指定,則可以使用替換 Lookat:=xlWhole
With nb.Sheets(1)
.Range("Q2:U" & .Cells(.Rows.Count,"Q").End(xlUp).Row) _
.Replace "NA", "", Lookat:=xlWhole, MatchCase:=True
End With
uj5u.com熱心網友回復:
這會更新Range您指定的每個單元格。
Sub test()
Dim c As Range
For Each c In Range("A1:Z100")
If c.Value = "NA" Then c.Value = ""
Next
End Sub
但是對于這么簡單的事情,使用內置的 Replace 更有意義。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/353782.html
下一篇:根據特定條件復制和粘貼
