2014-10-20 82 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