2016-07-14 138 views
1

應該使用什麼宏來查找以D開頭的所有行並刪除這些行。 現在我正在使用:(刪除TOTAL以上的每個文本),這並不總是完美的工作。如何查找以特定字母開頭並刪除該行的單詞?

Sub A2a_Deleterowsabove() 
Dim foundOne As Range 
On Error Resume Next 
With ActiveSheet 
    Set foundOne = .Range("A:A").Find(what:="TOTAL", After:=.Range("a1"), LookIn:=xlFormulas, _ 
           LookAt:=xlPart, SearchOrder:=xlByRows, _ 
           SearchDirection:=xlNext, MatchCase:=False) 
    If foundOne.Row > 1 Then 
     Range(.Range("e1"), foundOne.Offset(-1, 0)).EntireRow.delete shift:=xlUp 
    Else 

End If 
End With 
End Sub 

我想用這個的:

Sub Delete_Cells_with_D() 
Dim i As Integer 
For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1 
If Cells(i, 1) = "D* -" Then Cells(i, 1).EntireRow.Delete shift:=xlUp 
Next i 
End Sub 

我應該把什麼在宏#2的突出部分,以表明該d後面的數字是未知的?

Excel example, and Macros #2

感謝您的幫助!

+1

'If Cells(i,1)like「D *」Then ...' –

回答

4
Sub Delete_Cells_with_D() 

    Dim i As Integer 
    For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1 
     If Left(Cells(i, 1), 1) = "D" Then Cells(i, 1).EntireRow.Delete shift:=xlUp 
    Next i 

End Sub 
+0

令人驚歎!而已!謝謝,托馬斯。只是想知道你是否可以向我解釋我的宏是否有問題?我注意到你把它改成了你能解釋一下這意味着什麼嗎?是最後一個變量?謝謝! –

+0

Left函數返回字符串的最左邊部分。第二個參數告訴它要返回多少個字符。 – 2016-07-14 16:40:49

+0

我認爲我現在明白了。謝謝你向我解釋,托馬斯。所以(Cells(i,1),)意味着在單元格(i)中是整數D和1),1)整數之後有多少個字符空間?在1),1)部分 –

相關問題