导出文本文件excel

时间:2016-09-02 12:53:29

标签: excel vba excel-vba

我正在尝试创建一个命令按钮,将我的表导出到制表符分隔的文本文件,并为其添加一些动态标题。 我想要标题说: 1 / x 2 / x 3 / x 4 / x等等,其中x是列总数

到目前为止,这是我从网站上获得的代码:

Private Sub CommandButton1_Click()

    Dim myFile As String, rng As Range, cellValue As Variant, i As Integer, j As   Integer

    myFile = Application.DefaultFilePath & "\projekt.txt"

    Set rng = Selection

    Open myFile For Output As #1

    For i = 1 To rng.Rows.Count
        For j = 1 To rng.Columns.Count

            cellValue = rng.Cells(i, j).Value

            If j = rng.Columns.Count Then
                Write #1, cellValue
            Else
                Write #1, cellValue,
            End If

        Next j
    Next i

    Close #1
End Sub

问题在于这取决于我标记填充的细胞是否有效, 它也只生成逗号分隔的文本文件,我想要没有“”的制表符分隔文件。它也不会产生标题。

1/5    2/5    3/5    4/5    5/5
x(total) rows
Data    Data    Data    Data    Data
Data    Data    Data    Data    Data
Data    Data    Data    Data    Data
Data    Data    Data    Data    Data

1 个答案:

答案 0 :(得分:2)

它只输出选定的单元格,因为在代码中你有第4行

Set rng = Selection

如果要始终导出特定范围,例如A1:E100,您可以将此行更改为,

Set rng = Range("A1:E100")

如果此范围包含标题,则您的导出也会包含标题。

第二个问题,

由于您有

,因此以逗号分隔
Write #1, cellValue,

要使其标签脱离,请将此行更改为

Write #1, cellValue & vbTab

这应该是写部分的完整代码,vbNewline表示“新行”字符(或vbCrLf也可以),vbTab是制表符

If j = rng.Columns.Count Then
    Write #1, cellValue & vbNewLine
Else
    Write #1, cellValue & vbTab
End If