【问题标题】:Excel VBA Open 1 CSV fileExcel VBA 打开 1 个 CSV 文件
【发布时间】:2016-06-03 11:51:30
【问题描述】:

使用 Excel 2010,我正在尝试添加一个代码,该代码将打开文件选择窗口,供用户选择他想要打开的 CSV 文件。

我的代码如下:

Dim OpenThisFile
OpenThisFile = Application.GetOpenFilename

这只是从我的一个旧 VBA 文件中提取的,这在以前有效。目前,当 VBA 读取第二行时,它会打开文件选择窗口,但是一旦我选择一个 CSV 文件并点击 OPEN,它就会给出错误Application-Defined or Object-Defined Error

【问题讨论】:

  • 你能把整个SubFunction的代码贴出来吗?

标签: vba excel csv


【解决方案1】:

GetOpenFilename 将返回完整的 filespec 作为 String 变量。你可以像这样解析它:

Sub qwerty()
    Dim f As String, Path As String, _
        FileName As String, FileType As String

    f = Application.GetOpenFilename()
    MsgBox f

    ary = Split(f, "\")
    bry = Split(ary(UBound(ary)), ".")
    ary(UBound(ary)) = ""
    Path = Join(ary, "\")
    FileName = bry(0)
    FileType = bry(1)

    Range("A1") = Path
    Range("A2") = FileName
    Range("A3") = FileType
End Sub

如果您想预选路径和文件类型,那么:

Sub qwerty2()
    Dim f As String, Path As String, _
        FileName As String, FileType As String

    ChDir "C:\TestFolder"
    f = Application.GetOpenFilename(FileFilter:="Text Files (*.csv), *.csv")
    MsgBox f

    ary = Split(f, "\")
    bry = Split(ary(UBound(ary)), ".")
    ary(UBound(ary)) = ""
    Path = Join(ary, "\")
    FileName = bry(0)
    FileType = bry(1)

    Range("A1") = Path
    Range("A2") = FileName
    Range("A3") = FileType
End Sub

【讨论】:

  • 所以您“怀疑”在“打开”对话框中单击“打开”按钮时未正确抛出“应用程序定义或对象定义错误”?跨度>
  • @user3598756 不确定.......对话框本身不应该引发错误............即使文件受保护或在某种意义上“隐藏”,对话框应返回完整的文件规范作为 StringString False
  • 这也是我所知道的。这就是“怀疑”的真正理由......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-13
相关资源
最近更新 更多