さまざまなサイトから収集したコードを使用して、各レコードの区切り記号を持つフラット ファイルを読み取りました。このコードは、ファイル内のレコード数が 505 を超えると実行時エラー 6 エラーが発生することを除いて、うまく機能します。これについて何をすべきかを手伝ってもらえますか?私は VBA のバックグラウンドを持っていませんが、他の人からの質問を使用して、このコードをアプリケーション用にまとめました。
Sub Posting()
Dim RowNdx As Long
Dim ColNdx As Integer
Dim TempVal As Variant
Dim WholeLine As String
Dim Pos As Integer
Dim NextPos As Integer
Dim SaveColNdx As Integer
Dim FName As String
Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Application.CutCopyMode = False
Selection.ClearContents
Range("A1").Select
Application.ScreenUpdating = False
'On Error GoTo EndMacro:
Sep = "@"
FName = Application.GetOpenFilename
If sFileName = "False" Then Exit Sub
Cells(1, 8).Value = Mid(FName, Len(FName) - 8, 4)
SaveColNdx = ActiveCell.Column
RowNdx = ActiveCell.Row
Open FName For Input Access Read As #1
While Not EOF(1)
Line Input #1, WholeLine
If Right(WholeLine, 1) <> Sep Then
WholeLine = WholeLine & Sep
End If
ColNdx = SaveColNdx
Pos = 1
NextPos = InStr(Pos, WholeLine, Sep)
While NextPos >= 1
TempVal = Mid(WholeLine, Pos, NextPos - Pos)
Cells(ColNdx, RowNdx).Value = TempVal
Pos = NextPos + 1
ColNdx = ColNdx + 1
NextPos = InStr(Pos, WholeLine, Sep)
Wend
RowNdx = RowNdx + 1
Wend
実行時エラー 6 オーバーフローが表示されていますNextPos = InStr(Pos, WholeLine, Sep)