【发布时间】:2016-10-13 14:04:50
【问题描述】:
我创建了一个 VBA 代码,可将数据从单个硬编码工作表导出到 export.txt 文件。我不得不使用两个 For 循环,因为我不知道我会以什么不同(和简单)的方式跳过包含来自导出角度的不必要信息(另一个宏的文件类型和主键)的两行。尽管如此,宏还是完成了它的工作......
Sub VBA_Write_to_a_text_file()
Dim filename As String
Dim rng As Range
Dim cellValue As Variant
Dim i As Integer
Dim j As Integer
filename = Application.ThisWorkbook.Path & "/export.txt"
Open filename For Output As #1
Set rng = Sheets(22).Range("A1:G1")
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
Set rng = Sheets(22).Range("A4:G18")
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
...除了两个问题:
-
管道分隔符问题:我无法更改逗号“,”管道分隔符“|”通过更改以下语法。此语法可能仅保留给以逗号分隔的文件。你会推荐什么?
If j = rng.Columns.Count Then Write #1, cellValue Else Write #1, cellValue, 不必要的引用:在上面提供的同一位中,我使用 Write 而不是 Print。我知道 Print 会去掉引号,但它也会删除分隔符,从而生成制表符分隔的文件,这不是一个选项。管道问题比报价问题具有更高的优先级,但理想情况下我的目标是同时解决这两个问题。
提前感谢您的所有建议。
【问题讨论】:
标签: vba excel export delimiter