我有数百个.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"))
我搜索了各种论坛,发现了与我类似的问题,但我对语法不太熟悉,无法弄清楚代码中的问题。我非常感谢任何帮助,并希望了解如何正确修改此代码
答案 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