【发布时间】:2018-10-07 05:07:48
【问题描述】:
我有这个我能够构建的 VBScript 函数,它打开用户指定的 excel 文件,并开始解析 Sheet 3 的 C 列以查看类别是什么。如果类别不是“水果”,我希望删除整行。该功能按预期工作。但是,我注意到它的效率非常低(100 行大约需要 3 秒),我需要能够扫描近 11 000 行。有没有一种方法可以优化搜索,以便只需几秒钟就可以浏览所有记录?
Function prepFile(usrFileSelected)
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open(usrFileSelected)
objExcel.Sheets("Sheet3").Activate
intRow = 2
maxRow = objExcel.ActiveSheet.UsedRange.Rows.Count
Do while intRow <= 1000
currentValue = objExcel.Cells(3,intRow).value
If currentValue <> "Fruit" then
objExcel.Rows(intRow).EntireRow.Delete
End If
intRow = intRow + 1
Loop
msgbox("Done")
objWorkbook.Save
objWorkbook.Close
End Function
【问题讨论】:
-
那是因为 Excel 不是数据库(尽管许多人认为它是)。为正确的工作使用正确的工具总是值得的。
标签: vbscript