2015-06-01 32 views
0

我有一個代碼,它打開一個文本文件。它包含的行數超過了Excel的限制。當手動打開它時,會出現提示「文件未加載完全」,但在宏中時,我看不到提示。如何捕獲錯誤「文件未完全加載」

我想要做的就是抓住那個錯誤。即使啓用了我的宏的顯示警報,仍然沒有發現錯誤。

On Error Goto catch_err 
...open text file here 
On Error Goto 0 

catch_err: 
    Msgbox err.description 

這就是我的代碼結構。

+0

不確定Excel,但在Access中,有時需要在代碼頂部有一個聲明;設置警告=真。這會打開應用程序將拋出的任何警告,以便它們顯示。 –

+0

你爲什麼不嘗試嘗試catch語句? – RajSharma

回答

1

爲什麼不在每次打到1M行時流入文件並移到下一個選項卡?

我把它們一起扔給你,請原諒那裏的Citrix線(我需要它進行測試,如果你在那個環境中,就留下它)。

Sub BigFile() 
Dim myFile As String, textline As String, X As Long 
'myFile = "\\Client\C$\Temp\YourBigFile.txt" 'Silly Citrix syntax 
myFile = "C:\Temp\YourBigFile.txt" 'Normal syntax 
Open myFile For Input As #1 
Do Until EOF(1) 
    X = X + 1 
    If X = 1000000 + 1 Then 
     Sheets.Add 
     X = 1 
    End If 
    Line Input #1, textline 
    Range("A" & X).Formula = textline 
Loop 
Close #1 
End Sub 

這樣你不需要測試錯誤,因爲不會有錯誤。

+0

我需要它儘可能快。通過使用1M行的Excel(製表符分隔文本)打開文本文件需要很長時間。 無論如何,我發現了一個更好的解決方法。不管怎麼說,還是要謝謝你 :) –