1

Excel VBA の方法で厄介な小さなバグに遭遇しました.OpenText。最初の 2 文字が大文字の「ID」の場合、テキストまたは CSV ファイルを開くときにエラーが発生します。MS の記事は次のとおりです

そのため、最初のヘッダーの名前を変更するためだけにファイル全体をコピーする必要のない回避策を見つけようとしています。いくつかの大きなテキスト ファイルを扱っていますが、これは不十分な最後の手段です。

On Error Resume Next電話の前に試してみまし.OpenTextたが、うまくいきませんでした..誰かがこれに出くわし、私が見逃している簡単な解決策を見つけましたか? 最初の行をクラックして開き、テキスト ファイル内を検索/置換する方法はありますか? または追加のパラメーターを.OpenText使用できますか?

4

3 に答える 3

3

私はあなたのためにこれを書きました。開こうとする前に、ファイルパスを渡して呼び出すだけです。これは意図的に遅延バインディングで書いたので、参照は必要ありません。ファイルが「ID」で始まる場合、ファイルの先頭にアポストロフィが追加されます。

Sub FixIDProblem(filePath As String)
    Dim fso As Object
    Dim text As Object
    Dim contents as String
    Set fso = CreateObject("Scripting.FileSystemObject")
    If fso.FileExists(filePath) Then
        'Open the file for reading
        Set text = fso.OpenTextFile(filePath, 1)
        'Load the text contents to variable
        contents = text.ReadAll
        'Check for the forbidden text at the beginning
        If Left(contents, 2) = "ID" Then
            text.Close
            'Overwrite textfile with it's contents plus an apostraphe
            Set text = fso.OpenTextFile(filePath, 2)
            text.Write "'" & contents
        End If
        text.Close
    Else
        MsgBox "File does not exist"
    End If
    Set fso = Nothing
End Sub
于 2012-10-25T22:51:59.757 に答える
0

アラートをオフにするだけです。

Application.DisplayAlerts = False
Application.Workbooks.OpenText Filename:="startwithID.tab"
Application.DisplayAlerts = True
于 2013-05-07T18:22:38.723 に答える