编辑"文字连接"路径

时间:2015-09-07 04:08:25

标签: excel-vba vba excel

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

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

有没有人知道如何更改"文字" Excel中的连接路径,来自VBA内部?

另外,既然我在谈论这个主题,那么是否有可能拥有文件的相对路径而不是完整的文件路径(例如" \ data \ some_report.csv"而不是& #34; C:?\ somedir \数据\ some_report.csv&#34)

1 个答案:

答案 0 :(得分:2)

如你所说......

  

我遇到了一些解决方案,但它们涉及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