2016-08-23 107 views
0

我似乎無法拼湊VBA代碼,如果某個單元格中存在某些字符串,它將刪除一行。我可以輕鬆地做到這一點,但無法弄清楚如何包含多個字符串。一個Excel宏,如果某個單元格中存在某些值,它將刪除行,然後連接?

我已經得到了最後一部分,這很容易,只是將連接公式應用到一個範圍,但我已經嘗試了很多事情來獲得第一部分,沒有任何工作。

以下是我一起入侵的內容,只有在某個特定字符串在「無」的情況下才會刪除行。我還需要刪除行猶如「小計」,「估計和‘空’是在細胞中。

With Sheets("Customer Copy") 
    Firstrow = .UsedRange.Cells(1).Row 
    Lastrow = .UsedRange.Rows(.UsedRange.Rows.Count).Row 
    For Lrow = Lastrow To Firstrow Step -1 
    With .Cells(Lrow, "B") 
    If Not IsError(.Value) Then 

       If .Value = "None" Then .EntireRow.Delete 

    End If 

     End With 

    Next Lrow 

End With 

    Worksheets("Customer Copy").Range("A1:A200").Formula = "=CONCATENATE(B1, D1, E1)" 

謝謝你的任何幫助!

+2

怎麼樣'如果.value的= 「none」 或.value的= 「小計」 或.value的= 「估計」 或.value的= 「空」 然後.EntireRow.Delete'? – Ralph

+0

您絕對正確,先生! :) 非常感謝。我也會嘗試下面給出的建議。 –

回答

0

,我認爲這會工作

If .Value = "None" or .Value = "Subtotal" or .Value = "Estimate" or .Value = "Empty" Then 
+0

你是對的!我感到很傻。謝謝你回答 –

0

我想你只需要添加的所有條件,如果像下面

If .Value = "None" Or .Value = "Subtotal" Or .Value = "Estimate" Or .Value = "Empty" Then .EntireRow.Delete 
+0

絕對正確,完美!不敢相信我以前沒有想到這一點! –

2

或者,這是一個很好例如對於Select Case

Select Case Trim(LCase(.Value)) 
    Case "none", "subtotal", "estimate", "empty": .EntireRow.Delete 
End Select 
+0

*(+ 1)*我最喜歡你的解決方案,因爲它也處理字符串之前或之後的不可見空白(這通常是麻煩的來源)和UPPER /小寫比較。最後,你把所有的字符串整齊地結合在一起。像這樣,OP可以容易地擴展他/她希望搜索的字符串。我唯一不喜歡的是':',因爲它很容易堵塞代碼並使其不易識別。但這只是我個人的口味/偏好。 – Ralph

相關問題