Excel清理代码VBA

Des*_*der 1 excel vba excel-2007 excel-vba

我有一些运行良好的代码,但我知道它可以编写得比我的清晰得多.

Sub DeleteField()
Range("A6").Select

        Do
            If ActiveCell.Value = "Actual Conveyable Cases" Or _
            ActiveCell.Value = "Projected Non Con" Or _
            ActiveCell.Value = "Actual Non Con Cases" Or _
            ActiveCell.Value = "Projected CPT" Or _
            ActiveCell.Value = "Actual CPT" Or _
            ActiveCell.Value = "Projected Store Loads" Or _
            ActiveCell.Value = "Actual Store Loads" Or _
            ActiveCell.Value = "Projected Pull Ahead" Or _
            ActiveCell.Value = "Actual Pull Ahead" Or _
            ActiveCell.Value = "Projected Loads at 08:00" Or _
            ActiveCell.Value = "Actual Loads at 08:00" Then
        ActiveCell.EntireRow.Select
        Selection.Delete
        ActiveCell.Select
            Else: ActiveCell.Offset(1, 0).Select
        End If

    Loop Until ActiveCell.Value = "" And ActiveCell.Offset(-5, 0).Value = ""

MsgBox "Done!"

End Sub
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种方法来清理多个Or语句.有没有办法可以用数组或者某种方式来清理所有的"ActiveCell"段

Lit*_*les 5

您可以使用SELECT CASE语句来清理它:

Select Case ActiveCell.Value 
    Case "Actual Conveyable Cases", "Projected Non Con", _
         "Actual Non Con Cases", "Projected CPT", "etc..."

            ActiveCell.EntireRow.Select
            Selection.Delete
            ActiveCell.Select

    Case Else

            ActiveCell.Offset(1, 0).Select

End Select
Run Code Online (Sandbox Code Playgroud)

  • +1,但如何用'ActiveCell.EntireRow.Delete`替换第一种情况下的3行 (4认同)