Excel宏 - 删除特定文本上方一行的所有行,并停在上面的空行

时间:2016-04-07 20:04:16

标签: excel excel-vba macros vba

我需要得到Macros专家的一些帮助。我一直在玩一些宏,希望能找到一些东西,帮助我删除我在图像中高亮显示的所有区域,实际的文件没有'突出显示这些区域。但我没有运气。

enter image description here

我需要的是一个宏来执行以下操作:

  1. 找到文字Sub
  2. 使用单词Sub
  3. 删除行上方的所有内容
  4. 停在
  5. 上方的空白行
  6. 将它放在循环中,以便为整个文档执行此操作
  7. 提前非常感谢!

1 个答案:

答案 0 :(得分:0)

试试这个......

Option Explicit

Sub main()
    Dim mySht As Worksheet
    Dim myRng As Range
    Dim nRows As Long, iCount As Long

    Set mySht = ActiveWorkbook.Worksheets("Sheet1")
    Set myRng = mySht.UsedRange

    nRows = myRng.Rows.Count

    iCount = nRows
    Do While iCount > 0
        If myRng.Cells(iCount, 3).Value = "SUB" Then
            If myRng.Cells(iCount - 2, 3).Value <> "" Then
                myRng.Rows(iCount - 2).Delete (xlShiftUp)
                Set myRng = myRng.Resize(myRng.Rows.Count - 1, myRng.Columns.Count)
            End If
        End If
        iCount = iCount - 1
    Loop

End Sub

Sheet1就像这样......

enter image description here

并以此结束...

enter image description here