Excel VBA代码,用于查找列中的最大单元格值并删除其下的所有行

时间:2017-08-23 21:34:03

标签: excel vba excel-vba

我有数百个.csv文件(列A和B中的数据)要清理,我认为宏可以快速处理这些数据。

代码的目标是在列A中找到具有最大值的单元格并删除其下面的所有行

到目前为止,我的代码是

Sub DeleteRowAfterRange()

    Dim maxValue As Long
    Set maxValue = Application.WorksheetFunction.Max(Columns("A"))

    With Sheets("Sheet1")
        .Rows(maxValue & ":" & UsedRange.Rows.Count).Delete
    End With

 End Sub

我在VB编辑器中运行宏,并在突出显示此部分代码时看到编译错误:需要对象

maxValue =

Set maxValue = Application.WorksheetFunction.Max(Columns("A"))

我搜索了各种论坛,发现了与我类似的问题,但我对语法不太熟悉,无法弄清楚代码中的问题。我非常感谢任何帮助,并希望了解如何正确修改此代码

1 个答案:

答案 0 :(得分:2)

你没有Set长,它不是一个对象。

Max函数不会返回位置,而是返回实际数字。

我们可以在数字上使用匹配来返回行。

Sub DeleteRowAfterRange()

Dim maxValue As Long

With Sheets("Sheet1")
    maxValue  = Application.WorksheetFunction.Match(Application.WorksheetFunction.Max(.Range("A:A")), .Range("A:A"), 0)
    .Rows(maxValue  & ":" & .UsedRange.Rows.Count).Delete
End With

End Sub