如何获取现有连接的外部文件的文件名 - Excel

时间:2014-03-09 23:49:36

标签: excel vba excel-vba csv

我将外部文本文件(.csv)导入名为“SourceData”的excel工作表。

该连接称为“数据”。每次刷新我的工作簿时,excel都会要求我选择我的源文件。我的源文件具有相同的数据结构,它们由其他数据库自动生成:

           REPL_STATS_010314130000.CSV

           REPL_STATS_030314060001.CSV
           ....

我的问题是:

  • 如何获取当前导入我的工作表“SourceData”的外部csv文件的文件名,以便在刷新连接时,此名称显示在名为的另一个工作表的单元格(例如A1)中“摘要”

例如:点击全部刷新后,选择文件“REPL_STATS_010314130000.CSV”更新我的数据源,然后单元格A1将显示“REPL_STATS_010314130000.CSV”

我已经尝试了几天寻找解决方案,但我无法让它发挥作用。

您能否建议可以获取此信息的表单VBA代码?

提前谢谢!

1 个答案:

答案 0 :(得分:1)

感谢Tim Williams建议我编写以下代码,并将此代码放在Sheet1(SourceData)中:

Private Sub Worksheet_Change(ByVal Target As Range)
   Dim ConSource As String

   ConSource = Worksheets("SourceData").QueryTables("Data").Connection

   Worksheets("Summary").Range("A1").Value = "Source:   " & Right(ConSource, Len(ConSource) - InStrRev(ConSource, "\"))

   ConSource = ""

End Sub