我正试图从CSV中提取信息(
学生数据。csv
)总之。我已经确定,由于制作CSV的数据库中的一些格式,Word识别出有n行,但它正在计算回车
在生产线内
作为其中一条线,导致我实际上没有达到EOF。
i、 e:以下信息被视为两行,因此我的计数不正确。
All of this information
is stored in one cell
经过几个小时的不同尝试,我决定在一个单独的Excel工作簿中编写一个脚本(
快跑。xlsm
)格式化
学生数据。csv
.不幸的是,我遇到了麻烦;当我尝试将CSV作为工作簿打开并检索文件名时,它会返回
快跑。xlsm
相反下面是我的代码:
Sub testingStuff()
Dim r 'Rows that contain data
Dim wb As Workbook, sh As Worksheet, p As String
'Set wb = Workbooks.Open(filename:="\...\studentData.csv", local:=True)
p = Dir("\...\studentData.csv")
Debug.Print p
Set wb = Workbooks.Open(p)
Debug.Print wb.path & ": " & wb.Name 'checking the path
Set sh = wb.Sheets(1)
r = Application.WorksheetFunction.CountA(sh.Range("O:O"))
Debug.Print wb.Name & ": " & sh.Name & ": " & r
End Sub
这是我的即时窗口:
studentData.csv
\...\: runMe.xlsm
runMe.xlsm: Sheet1: 0
我完全不确定它为什么返回控制文件名——我只能假设代码没有将CSV识别为工作簿,因此默认为
快跑。xlsm
.
我应该注意,CSV和xlsm文件都在同一个文件夹中。
那么,我应该如何设置格式呢?我写了一个简短的宏:
r = Application.WorksheetFunction.CountA(sh.Range("O:O"))
With ActiveWorkbook.ActiveSheet
For i = 1 To r
.Cells(i, 15).Value = Replace(.Cells(i, 15).Value, vbNewLine, "")
Next
End With
我只是需要一种方法来应用它。或者,我甚至不必麻烦格式化CSV——我能用Word解决这个问题吗?