Excel:使用宏更改数据源

Excel:使用宏更改数据源

我正在使用 CSV 文件(由事物方程序生成)作为外部数据源,我想从宏中更改其路径......我该怎么做?

对我的问题的另一个可接受的答案是指定相对于 excel 文件的路径的方法 - 还没有找到如何做 - 因为在我的情况下,csv 和 xls 都在同一个目录中。

答案1

Sub Import()
    Dim FilePath As String
    FilePath = "TEXT;C:\directory\" & Cells(1, 1).Value
    ActiveWorkbook.Worksheets.Add
    With ActiveSheet.QueryTables.Add(Connection:=FilePath, Destination:=Range("$A$1"))
        .Name = "Book1"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 437
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With

End Sub

当您将文件(例如 book3.csv)放入 sheet1 A1 中时,这将创建一个包含数据的新工作表;您将 C:\directory 更改为输入所在的目录,并且可以在第 5 行“范围”中更改输出范围

此外,第 3 行“Cells(1,1)”表示输入单元格,因此您可以根据需要从 Sheet1 A1 更改该单元格。您需要在引用单元格中指示文件扩展名,否则它将不知道要导入哪个文件。只需运行此宏,您就会得到一个包含目标数据的新工作表。如果您需要一个新的工作簿或将其插入现有工作表,请告诉我。

另外,如果你查看属性,这是一个逗号分隔的文件,你可以更改它,或者只录制你自己的宏(开发人员选项卡 -> 录制宏)并在顶部插入 FilePath 类型命令并更改连接命令

相关内容