我使用以下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.
非常感谢所有帮助!
亲切的问候
答案 0 :(得分:1)
有问题的代码适用于启用了更新的活动工作表(默认)。这意味着Excel必须重新绘制屏幕并在每次更新单元格时重新计算工作表。尝试在导入期间使用" Application.ScreenUpdating = False"禁用更新。缺点是,Excel在更新期间没有响应。最后,重新打开屏幕更新。