2014-10-20 118 views
-1

我有一個宏,當前刪除列A中的空白行,然後刪除一些不必要的列E和G.報告已更改,現在列EI中必須刪除所有位置從「MX」開始,並且有太多的選擇需要逐一選擇。有什麼我可以添加到當前的宏刪除所有以「MX」開頭的位置?還有許多其他的前綴,如「美國」,「CA」,但一個我需要刪除的「MX」基於前綴刪除列的內容

下面是當前的代碼:

Sub Delete() 

    Dim cRow As Long 
     cRow = 3 
    Do While (IsEmpty(Cells(cRow, 1))) 
     cRow = cRow + 1 
    Loop 
    cRow = cRow - 1 

    'Rows("3:" & cRow).Select 
    Rows("3:" & cRow).Delete Shift:=xlUp 
    Columns("E:E").Select 
    Selection.Delete Shift:=xlToLeft 
    Columns("G:G").Select 
    Selection.Delete Shift:=xlToLeft 

End Sub 
+1

在E列中,如果您找到帶有「MX」的條目,您希望做什麼?清除內容或刪除單元格並向上移動? 另外,您正在刪除列A中具有空白條目的行;其中的任何一個都可能想要列E中的值? – LimaNightHawk 2014-10-20 13:42:35

+0

A列中的空白根本不需要,因爲它們不包含我的報告的任何相關信息,並且在包含「MX」的列E單元格中應刪除整行。 – William 2014-10-20 14:00:58

回答

0

你可以做這樣的事情,

Sub Delete() 

    Dim cRow As Long 
     cRow = 3 
    Do While (IsEmpty(Cells(cRow, 1))) 
     cRow = cRow + 1 
    Loop 
    cRow = cRow - 1 
    if range("E" & cRow).value like "MX*" then 'OR left(range("E" & cRow).value, 2) = "MX" 
     Rows("3:" & cRow).Delete Shift:=xlUp 
     Columns("E:E").Select 
     Selection.Delete Shift:=xlToLeft 
    end if 

    Columns("G:G").Select 
    Selection.Delete Shift:=xlToLeft 

End Sub 

不知道你是否仍然需要G。

+0

由於某些原因,它不會刪除列A中的空白,它只會刪除E列和G列...... – William 2014-10-20 15:17:07