VBA – 基于包含特定单词的单元格删除行,并根据单元格值添加行

我在做什么:

从Salesforce导出Excel文档。 我想根据条件删除一些行,然后根据不同的条件添加行。 作为VBA的新手,我浏览了论坛,并search了一些示例代码,但无法让他们充分的工作。

添加行:

C栏=数量。 需要根据列C中的值添加下面的行。如果quantity = 3 – 我想在下面添加2个空白行。 如果数量= 4-3下面的空行…

尝试:

Sub BlankLine() Dim Col As Variant Dim BlankRows As Long Dim LastRow As Long Dim R As Long Dim StartRow As Long Col = "C" StartRow = 15 BlankRows = 1 LastRow = Cells(Rows.Count, Col).End(xlUp).Row Application.ScreenUpdating = False With ActiveSheet For R = LastRow To StartRow + 1 Step -1 If .Cells(R, Col) > 1 Then .Cells(R + 1, Col).EntireRow.Insert Shift:=xlDown End If Next R End With Application.ScreenUpdating = True End Sub 

这工作,但只在下面添加一行 – 我需要它来添加行列C ='数量'的值。

删除行:

列A =产品名称。 如果任何产品名称包含MAINT或APP,我需要删除该行。 尝试:

 Sub test() With ActiveSheet .AutoFilterMode = False With Range("A1", Range("A" & Rows.Count).End(xlUp)) .AutoFilter 1, "*Maint*" On Error Resume Next .Offset(1).SpecialCells(12).EntireRow.Delete End With .AutoFilterMode = False End With End Sub 

这也行得通,但删除了第一行,所以我失去了一些信息。

任何build议如何处理这是非常感谢!

至于插入行

 For R = LastRow To StartRow + 1 Step -1 With .Cells(R, Col) If .Value > 1 Then .Offset(1).Resize(.Value).EntireRow.Insert End With Next R 

而过滤和删除

 Sub test() With ActiveSheet .AutoFilterMode = False With .Range("A1", .Range("A" & .Rows.Count).End(xlUp)) .AutoFilter Field:=1, Criteria1:=Array("*Maint*", "*APP*"), Operator:=xlFilterValues If Application.WorksheetFunction.Subtotal(103, .Cells) > 1 Then .Offset(1).Resize(.Rows.Count -1).SpecialCells(xlCellTypeVisible).EntireRow.Delete End With .AutoFilterMode = False End With End Sub 
 If .Cells(R, Col) > 1 Then numRows = val(.Cells(R, Col)) - 1 For i = 1 to numRows .Cells(R + 1, Col).EntireRow.Insert Shift:=xlDown Next i End If