我有一个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)
答案 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