我希望能够使用 VBA 将选定的单元格范围导出到 .csv 文件。到目前为止,我想出的方法非常适合连贯选择,但在选择多个列时会失败。
这是我设法从互联网上找到的代码片段中整理出来的代码:它还摆弄了一些 UI,因为我的 Excel 会说德语,所以我需要“。” 作为小数分隔符而不是“,”它会调整它。
Sub Range_Nach_CSV_()
Dim vntFileName As Variant
Dim lngFN As Long
Dim rngRow As Excel.Range
Dim rngCell As Excel.Range
Dim strDelimiter As String
Dim strText As String
Dim strTextCell As String
Dim strTextCelll As String
Dim bolErsteSpalte As Boolean
Dim rngColumn As Excel.Range
Dim wksQuelle As Excel.Worksheet
Dim continue As Boolean
strDelimiter = vbtab
continue = True
Do While continue = True
vntFileName = Application.GetSaveAsFilename("Test.txt", _
FileFilter:="TXT-File (*.TXT),*.txt")
If vntFileName = False Then
Exit Sub
End If
If Len(Dir(vntFileName)) > 0 Then
Dim ans As Integer
ans = MsgBox("Datei existiert bereits. Überschreiben?", vbYesNo)
If ans = vbYes Then
continue = False
ElseIf ans = vbNo Then
continue = True
Else
continue = False
End If
Else
continue = False
End If
Loop
Set wksQuelle = ActiveSheet
lngFN = FreeFile
Open vntFileName For Output As lngFN
For Each rngRow In Selection.Rows
strText = ""
bolErsteSpalte = True
For Each rngCell In rngRow.Columns
strTextCelll = rngCell.Text
strTextCell = Replace(strTextCelll, ",", ".")
If bolErsteSpalte Then
strText = strTextCell
bolErsteSpalte = False
Else
strText = strText & strDelimiter & strTextCell
End If
Next
Print #lngFN, strText
Next
Close lngFN
End Sub
正如我已经提到的那样,该子适用于连贯的选择以及多个选定的行,但在涉及多个列时会失败。
子的当前输出可以在这张图片上看到: 多列失败
正如人们所期望的那样,我希望 .csv 文件(或相应的 .txt 文件)看起来像这样: 多个列需要输出
对于最后一种情况,如何实现所需的行为?有人会这么好心地将链接包含为图像吗?当然,如果认为合适的话。