我尝试使用之前提供的一些代码超级用户答案:
Sub OpenCsvAsText(ByVal strFilepath As String)
Dim intFileNo As Integer
Dim iCol As Long
Dim nCol As Long
Dim strLine As String
Dim varColumnFormat As Variant
Dim varTemp As Variant
'// Read first line of file to figure out how many columns there are
intFileNo = FreeFile()
Open strFilepath For Input As #intFileNo
Line Input #intFileNo, strLine
Close #intFileNo
varTemp = Split(strLine, ",")
nCol = UBound(varTemp) + 1
'// Prepare description of column format
ReDim varColumnFormat(0 To nCol - 1)
For iCol = 1 To nCol
varColumnFormat(iCol - 1) = Array(iCol, xlTextFormat)
' What's this? See VBA help for OpenText method (FieldInfo argument).
Next iCol
'// Open the file using the specified column formats
Workbooks.OpenText _
Filename:=strFilepath, _
DataType:=xlDelimited, _
ConsecutiveDelimiter:=False, Comma:=True, _
FieldInfo:=varColumnFormat
End Sub
我将“Sub OpenCsvAsText... End Sub”代码插入到 Excel 2010 工作簿的一个模块中。但是我不知道如何运行它。它没有出现在可用宏列表中,尽管其他宏确实出现了(我设置了安全性以启用所有宏)。在上面的页面上,用法指定为:
OpenCsvAsText "C:\MyDir\MyFile.txt"
我应该从命令行运行它,还是从 Excel 中的提示符运行它?如果是,在哪里运行?
答案1
在您粘贴上面引用的 Sub 的模块中,创建一个宏来运行该 Sub。
子宏_OpenCsvAsText()
Dim strfilepath_input 作为字符串'创建一个变量来接收来自宏的文件名
strfilepath_input = InputBox("输入文件名", "以文本形式打开 CSV", vbOKCancel)'创建一个输入框来询问姓名
OpenCsvAsText (strfilepath_input)'运行您已复制到工作簿中的模块的子程序
'添加一些错误捕获,以防您没有添加名称,或者名称无效
子目录结束
您可以使用查找对话框导航到文件,而不必输入文件,从而增加一些复杂性。此外,不要忘记错误捕获,否则您将到处追逐调试。