【发布时间】:2014-02-05 16:42:50
【问题描述】:
我正在使用以下 VBA 代码将一个相当大的文本文件导入电子表格,但这似乎需要很长时间。 (每个单元大约 0.0064 秒,当文件大得多时,这很快就会变得太多。)文件只是存储在本地,所以这不是问题。
我的代码目前如下所示:
Public Sub DataImport(fullFileName As String, worksheetName As String, cellName As String)
'Move to the sheet and desired first cell
ActiveWorkbook.Sheets(worksheetName).Activate
Range(cellName).Activate
Open fullFileName For Input As #1
' Copy the file into the excel sheet
row_number = 0
Do Until EOF(1)
Line Input #1, LineFromFile
LineItems = Split(LineFromFile, vbTab)
For i1 = LBound(LineItems) To UBound(LineItems)
ActiveCell.Offset(row_number, i1).Value = LineItems(i1)
On Error Resume Next
ActiveCell.Offset(row_number, i1).Value = ActiveCell.Offset(row_number, i1).Value * 1
Next i1
row_number = row_number + 1
Loop
Close #1
End Sub
编辑:我正在开发 Office For Mac,最终产品应该可以在 Windows 和 OS X 上运行。
非常感谢您对此提供的所有帮助!
亲切的问候
【问题讨论】:
-
试试this方法
-
还有OpenTextFile Method或OpenAsTextStream Method与Read和ReadLine方法;我用得最多的那个。
-
感谢您的提示,我已尝试实现 OpenAsTextStream 方法。不幸的是,自从我在 OS X 中工作以来,我遇到了一个问题,显然该环境不支持“CreateObject”方法。 (最终产品应该可以在 Windows 和 OS X 环境中使用。)我已经调整了最初的问题。
-
@SiddharthRout:您建议的最后一种方法非常适合我的目的,它非常简单,但可以以非常高的速度导入文件!谢谢!
-
很高兴能帮上忙 :)