我有一个CSV格式的日志文件,我需要定期截断。我正在寻找的是一种搜索文件中最后一个条目的方法,获取记录的行号,然后只保留前100行,并删除剩余的行。我需要每周运行一次。
像这样的事
搜索列A为空
找到该Null条目的行号
为该行数创建一个数组-101行,以创建最后100行数据的数组
删除该数组外的所有行 - 只留下最后100行。 的
我改变了我的方法,而是使用VBS(因为宏无法保存在CSV文件中)。我要求代码检查A450单元格中的任何内容。如果那里有东西,那么应该删除1-250行。
Option Explicit
Dim Val
Dim ExcelApp
Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.Visible = True
ExcelApp.Workbooks.Open("c:\CodeTest\P16UPSHEAD_In.csv")
Val = ExcelApp.ActiveSheet.Range("A450")
If Val <> "" Then
ExcelApp.ActiveSheet.Range("A1:A250").EntireRow.Delete
End If
ExcelApp.Workbooks.Save("c:\CodeTest\P16UPSHEAD_In.csv")
问题是文件以只读方式打开 - 因此“保存”命令无效。我做错了什么?