私はFreefileを使ってテキストファイルに書き出しようとしています。このプロセスでは、多数の列と各列のワークシートをテキストとしてエクスポートしています。VBA複数のFreeFile CSVへのエクスポート
私が抱えていた問題は、エラー55コード "ファイルは既に開いています"が表示されていることです。
可変長の入力として列範囲を使用したいので、必要なフリーファイルコマンドの数がわかりません。
For j = intColumOffsett + 1 To intLastColumn
strDate = wkSource.Cells(1, j).Value
strNewFile = strDirectory & strDate & " New.csv"
For i = 1 To intLastRow
strTarget = strTarget & wkSource.Cells(i, 1).Value & ","
strTarget = strTarget & wkSource.Cells(i, 2).Value & ","
strTarget = strTarget & wkSource.Cells(i, 3).Value & ","
strTarget = strTarget & strDate & ","
strTarget = strTarget & wkSource.Cells(i, j).Value
' It's this this section I'm not sure about \/
'Set strNewFile = Nothing
'Stop
iF1 = FreeFile(j)
'Close #iF1
On Error GoTo Error:
Open strNewFile For Output As #iF1
Print #iF1, strTarget
Debug.Print strTarget
strTarget = ""
Error:
MsgBox (Err.Description)
Next i
Close #iF1
Next j
ソースからの未知の列数に応じて、必要な数だけ新しいCSVファイルをエクスポートするにはどうしたらよいですか?
内部ループ内のファイルを閉じないため、変更されません。 –