我正在尝试从Word中的CSV( studentData.csv )中提取信息。我已经确定,由于数据库是从某种格式生成问题CSV的,因此Word识别出有n行,但它会将行自身中的回车 视为其中之一,导致我实际上未达到EOF。
即:以下信息被视为两行,因此不算我的计数。
All of this information
is stored in one cell
经过数小时的不同尝试,我决定在一个单独的Excel工作簿( runMe.xlsm )中编写一个脚本,以格式化 studentData.csv 。不幸的是,我一直在撞墙。当我尝试打开CSV作为工作簿并检索文件名时,它返回的是 runMe.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识别为工作簿,因此默认为 runMe.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中解决这个问题吗?