使用VBA将文件读入电子表格非常慢

时间:2014-02-05 16:42:50

标签: macos vba excel-vba io excel

我使用以下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.

非常感谢所有帮助!

亲切的问候

1 个答案:

答案 0 :(得分:1)

有问题的代码适用于启用了更新的活动工作表(默认)。这意味着Excel必须重新绘制屏幕并在每次更新单元格时重新计算工作表。尝试在导入期间使用" Application.ScreenUpdating = False"禁用更新。缺点是,Excel在更新期间没有响应。最后,重新打开屏幕更新。