如何使用vba代码将excel中的列数据导出到文本文件?

How to export a column data in excel to a text file using a vba code?

提问人:snollygoster 提问时间:8/5/2023 更新时间:8/5/2023 访问量:52

问:

我想使用 vba 代码将 H 列中包含的数据导出到 excel 文件中。我设法获取了代码,但我想修改它以允许我在创建之前选择名称和目录来保存它。提前致谢 代码是

Sub Export()

Dim i As Long, derLig As Long, tabl

derLig = Range("H" & Cells.Rows.Count).End(xlUp).Row
tabl = Range("H1:H" & derLig)
Open "D:\CCP.txt" For Output As #1
For i = 1 To UBound(tabl, 1)
If tabl(i, 1) <> "" Then
Print #1, tabl(i, 1)
End If
Next
Close #1
MsgBox ("Le Fichier CCP A Eté Créé Dans Le Disque D")
End Sub
VBA Excel-2007

评论

0赞 Tim Williams 8/5/2023
可用于提示输入文件的位置和名称。Application.GetSaveAsFileName
0赞 snollygoster 8/5/2023
你能帮我做吗,蒂姆·威廉姆斯。
0赞 taller 8/5/2023
你试过蒂姆的建议吗?你的代码是什么?
0赞 snollygoster 8/5/2023
我没能做到
0赞 Tim Williams 8/5/2023
在这里获得帮助的一个好方法是展示你尝试过的内容 - 发布你编写的尝试使用的代码,并告诉我们当你尝试运行它时发生了什么。您有错误吗?- 如果是,什么错误?GetSaveAsFileName

答:

1赞 CDP1802 8/5/2023 #1
Option Explicit

Sub Export()

    Dim i As Long, n As Long, derLig As Long, tabl
    Dim filename As String
    
    With ActiveSheet
        If WorksheetFunction.CountA(.Range("H:H")) = 0 Then
            MsgBox "pas de données à sauvegarder", vbCritical
            Exit Sub
        End If
        derLig = .Range("H" & Cells.Rows.Count).End(xlUp).Row
        tabl = .Range("H1:H" & derLig)
    End With
    
    filename = Application.GetSaveAsFilename
    If Len(filename) = 0 Then
        MsgBox "nom de fichier non valide", vbCritical
        Exit Sub
    End If
    
    Open filename For Output As #1
    For i = 1 To UBound(tabl, 1)
        If tabl(i, 1) <> "" Then
            Print #1, tabl(i, 1)
            n = n + 1
        End If
    Next
    Close #1
    MsgBox n & " lignes écrites dans " & filename, vbInformation
  
End Sub