【问题标题】:Editing "text connection" paths编辑“文本连接”路径
【发布时间】:2015-09-07 04:08:25
【问题描述】:

我有一个 Excel 文件,它通过“连接”菜单从多个 CSV 文件中提取数据。我遇到的问题是我需要能够从 VBA 中更改 CSV 文件的路径。

在重复 Binging(这几乎是一个坏词)之后,我遇到了一些解决方案,但它们涉及 SQL 连接而不是文本连接。由于文件是 CSV,Excel 使其成为文本连接,因此没有 ODBC 连接字符串可修改(尝试从 VBA 修改时出现错误)。我也翻遍了 MSDN 文档,但无济于事。

有谁知道从 VBA 中更改 Excel 中“文本”连接路径的方法?

另外,由于我正在讨论这个主题,是否可以使用文件的相对路径而不是完整的文件路径(例如“\data\some_report.csv”而不是“c:\somedir\data\ some_report.csv")?

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    正如你所说...

    我遇到了一些解决方案,但它们涉及 SQL 连接而不是文本连接。

    所以使用.TextConnection.Connection 而不是.ODBCConnection.Connection :)

    这是一个简单的例子。请酌情修改。

    Sub Sample()
        Dim Conn As Variant
        Dim ConString As String
        Dim oldPath As String, NewPath As String
    
        NewPath = "C:\MyPath.Csv"
    
        Set Conn = ActiveWorkbook.Connections.Item(1)
    
        Debug.Print Conn.TextConnection.Connection
        '==> TEXT;C:\Users\Siddharth\Desktop\Delete Later\Output.csv
    
        ConString = Conn.TextConnection.Connection
    
        oldPath = Split(ConString, ";")(1)
    
        ConString = Replace(ConString, oldPath, NewPath)
    
        Conn.TextConnection.Connection = ConString
    End Sub
    

    【讨论】:

    • 我认为这是QueryTable.Connection 属性。 TextConnection.Connection 属性似乎不适用于 VBA。
    • 可能需要 conn.Refresh 来立即更新数据 :)
    • @jeeped 建议的解决方案在我的安装中完美运行,只要我将文件作为“来自文本”导入。可能特定于版本(此处为 Office15)
    猜你喜欢
    • 2023-04-01
    • 2015-06-05
    • 2014-03-04
    • 1970-01-01
    • 2017-07-10
    • 2022-10-16
    • 2021-10-05
    • 1970-01-01
    • 2023-03-27
    相关资源
    最近更新 更多