Excel VBA代码来查找列中的最大单元格值,并删除它下面的所有行

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

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

到目前为止,我的代码是

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编辑器中运行macros,看到这部分代码被突出显示时,编译错误:所需的对象

 maxValue = 

在线

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

我已经通过各种论坛search,发现类似于我的问题,但我不熟悉的语法来弄清楚我的代码中的问题。 我将不胜感激任何帮助,并希望学习如何正确修改此代码

你不Set一个长,这不是一个对象。

最大值function不返回的位置,但实际的数字。

我们可以用数字上的Match来返回行。

 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