2017-03-25 7 views
0

Excel VBAを使用して範囲をテキストファイルに書き込もうとしています。私は見つけた次のスクリプトを使用しています:Excelの範囲からテキストファイルに書き込み

Sub VBA_write_to_a_text_file_from_Excel_Range() 
    Dim iCntr 
    Dim strFile_Path As String 
    strFile_Path = "C:\temp\test.txt" 
    Open strFile_Path For Output As #1 
    For iCntr = 1 To 10 
     Print #1, Range("A" & iCntr) 
    Next iCntr 
    Close #1 
End Sub 

ファイルを保存するパスを選択します。私は抜粋コードを見つけましたが、それが正しく機能するためには上のコードにどのように追加できますか?

fPath = Application.GetSaveAsFilename(FileFilter:="Text Files (*.txt), *.txt", Title:="Save As") 
If fPath = "" Then Exit Sub '//user cancelled 

答えて

0

fpath = Application.GetSaveAsFilename(FileFilter:="Text Files (*.txt), *.txt", Title:="Save As") 

If fpath <> "" Then 

Dim iCntr 

Dim strFile_Path As String 

strFile_Path = fpath 

Open strFile_Path For Output As #1 

For iCntr = 1 To 10 

    Print #1, Range("A" & iCntr) 

Next iCntr 

Close #1 

End If 
+0

あなたは両方strFile_PathとFPATH変数を必要としない。ただ唯一 – user3598756

+0

おかげJune7とBijuジョンを選択し、それらのいずれかを使用します。 @ user3598756あなたの提案を表示できますか? – Martijn

+1

すべての 'strFile_Path'オカレンスを' fpath'(またはそれとは反対の選択です)に置き換え、 'strFile_Path = fpath'ステートメントを削除してください – user3598756

0

どのように以下のようにあなたはそれをこのようにやってコードを使用することができますか?

'Excel VBA Write to Text File: 
Sub WriteToTextFile() 

Dim FilePath As String 
Dim CellData As String 
Dim LastCol As Long 
Dim LastRow As Long 

LastCol = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column 
LastRow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row 

CellData = "" 
FilePath = Application.DefaultFilePath & "\auth.csv" 

Open FilePath For Output As #1 

For i = 1 To LastRow 
    For j = 1 To LastCol 
    If j = LastCol Then 
     CellData = CellData + Trim(ActiveCell(i, j).Value) 
    Else 
     CellData = CellData + Trim(ActiveCell(i, j).Value) + "," 
     End If 
    Next j 

    Write #1, CellData 

Next i 

Close #1 
MsgBox ("Done") 

End Sub 
関連する問題