フォルダ内に複数のtxtファイルがあり、タブ区切りです。これらのファイルのそれぞれには、EngagementIdという列があります。これはレコード数に関係なく同じ値です。しかし、それは私がキャプチャしたいものであるtxtファイルごとに変わります。複数のテキストファイルからVBAを使用して1つのレコードのみをExcelに読み込みます。
- 最初の行にファイル名を取得しようとしています。 GetFileNames()(コメントで指摘したように)そのために働く
Sub GetFileNames()
Dim sPath As String
Dim sFile As String
Dim iRow As Integer
Dim iCol As Integer
Dim splitFile As Variant
'specify directory to use - must end in "\"
sPath = ActiveWorkbook.Path
iRow = 0
sFile = Dir(sPath & "\Individual Reports\")
Do While sFile <> ""
iRow = iRow + 1
splitFile = Split(sFile, ".txt")
For iCol = 0 To UBound(splitFile)
Sheet1.Cells(iRow, iCol + 1) = splitFile(iCol)
Next iCol
sFile = Dir ' Get next filename
Loop
End Sub
これらのtxtファイルのそれぞれは、(テキストファイルのそれぞれに13の位置にある)の列を持っています、 「EngagementId」と呼ばれています。私は最初の「Engagement Id」(2行目からのものです)(最初の行にはヘッダーが含まれているため)だけを取り出したいと思います。
Sub Extractrec()
Dim filename As String, nextrow As Long, MyFolder As String
Dim MyFile As String, text As String, textline As String
MyFolder = ActiveWorkbook.Path
MyFile = Dir(MyFolder & "\Individual Reports\*.txt")
Do While MyFile <> ""
Open (MyFolder & MyFile) For Input As #1
Do Until EOF(1)
Line Input #1, LineFromFile
LineItems = Split(LineFromFile, "\t") 'second loop text is already stored
'-> see reset text
Sheet1.Cells(iRow, iCol + 2).Value = LineItems(13, 2)
Loop
Close #1
Loop
問題は何ですか?私は "\ t"がvbaで動作するかどうかわからないので、vbtab定数を使用します。 – Jules
あなたは何を私たちに示していますか?あなたが望むように動作しないコードを持っていますか?それは今何が吐き出されていますか?データの例が役立ちます - これらの2つの別々の関数は別の場所から呼び出されますか? – dbmitch
'Sheet1.Cells(iRow、iCol + 2).Value = LineItems(13,2)'は範囲外の添え字エラーになります。 - Splitは1次元配列を返します。 – Comintern