【发布时间】:2021-10-14 22:47:38
【问题描述】:
我正在尝试使用宏来计算 .txt 文件的列数。我的代码需要永远运行,罪魁祸首就是这段代码
Set wb = Workbooks.Open(FName)
Dim lastColumn As Integer
Dim rng As Range
Set rng = wb.Worksheets(1).Cells
lastColumn = rng.Find(What:="*", After:=rng.Cells(1), Lookat:=xlPart, LookIn:=xlFormulas, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False).Column
wb.Close False
基本上我打开我认为的 .txt 文件,计算它们,将其存储在一个值中,然后关闭它,这需要很长时间,有没有更好的方法来做到这一点?
【问题讨论】:
-
你说的是 CSV 吗?比如一行有多少个逗号?
-
它不是逗号分隔,而是制表符分隔,大约有 930 列和 12,000 行,未来可能会发生变化。
-
请找出“永远”的部分。因此,使用 F8 逐步运行此代码。看看哪个代码行需要这么长时间。可能打开文件需要很长时间,然后该代码没有问题,然后打开文件只需要那个时间。请检查打开文件
Set wb = Workbooks.Open(FName)是否需要很长时间或lastColumn = rng.Find是否需要很长时间或wb.Close False。 -
您可能会发现以下链接中的 ImportCSV 函数很容易适应您的列号:stackoverflow.com/questions/68545448/…