为什么我在 Excel 中看不到此代码作为宏?

为什么我在 Excel 中看不到此代码作为宏?

我尝试使用之前提供的一些代码超级用户答案

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)'运行您已复制到工作簿中的模块的子程序

'添加一些错误捕获,以防您没有添加名称,或者名称无效

子目录结束

您可以使用查找对话框导航到文件,而不必输入文件,从而增加一些复杂性。此外,不要忘记错误捕获,否则您将到处追逐调试。

相关内容