arrays - VBA - 二维数组到 CSV
问题描述
我在下面有以下子(我在某处得到了表单),它应该从二维数组创建一个 csv。不错哦,排序有效,但有些问题我不知道如何解决。从图像中可以看出,记事本在文件中显示了不可打印的字符。我似乎无法在代码中找到或删除。
非常感谢您的任何帮助,在此先感谢您。
Public Sub SaveCSV(arr_SelectedCMHist() As Variant, path As String, Optional Delim As String = ",", Optional quote As String = """")
Dim opf As Long
Dim row As Long
Dim column As Long
If Dir(path) <> "" Then Kill path
opf = FreeFile
Open path For Binary As #opf
For row = LBound(arr_SelectedCMHist, 1) To UBound(arr_SelectedCMHist, 1)
For column = LBound(arr_SelectedCMHist, 2) To UBound(arr_SelectedCMHist, 2)
Put #opf, , quote & arr_SelectedCMHist(row, column) & quote
If column < UBound(arr_SelectedCMHist, 2) Then Put #opf, , Delim
Next column
If row < UBound(arr_SelectedCMHist, 1) Then Put #opf, , vbCrLf
Next row
Close #opf
End Sub
解决方案
我通过了另一种方法,我希望这对将来的某人有所帮助,我从这里得到的
Public Sub SaveAsCSV(arr_SelectedCMHist() As Variant, sFilename As String, Optional sDelimiter As String = ",", Optional quote As String = """")
Dim n As Long 'counter
Dim M As Long 'counter
Dim sCSV As String 'csv string to print
opf = FreeFile
Open sFilename For Output As #opf
For n = 0 To UBound(arr_SelectedCMHist(), 1)
sCSV = ""
For M = 0 To UBound(arr_SelectedCMHist(), 2)
sCSV = sCSV & quote & Format(arr_SelectedCMHist(n, M)) & quote & sDelimiter
Next M
sCSV = Left(sCSV, Len(sCSV) - 1) 'remove last Delimiter
Print #opf, sCSV
Next n
Close #opf
End Sub
推荐阅读
- visual-studio-code - 在 VSCODE 中使用具有“查找和替换”功能的当前替换索引
- oracle - 将备份表数据恢复到旧表数据
- ios - 使用 Xcode 12 为 iOS 开发构建 SDL 源
- spring-boot - 如何通过 SpringBoot JPA 在 MySQL 中上传和保存图像
- sql-server - 使用 Apply 方法从 xml 更正准确的元素计数
- node.js - 织物 js 画布导出为 mp4 文件
- javascript - 在表格中打印数组?Javascript / HTML
- c - 当我们在代码中出现错误时,内存中会发生什么?
- python - 无法创建自定义布局对象(python)
- r - 使用等宽系列字体在 R 中渲染图不再显示字符