如何从Userform中选择文件后将CSV数据导入Excel

时间:2014-02-12 17:28:23

标签: excel vba csv

我需要能够使用get external data函数将列数据从逗号分隔的Excel工作表导入到新工作表中。我希望最初在用户窗体中选择文件,但无法弄清楚如何使用导入命令来配合用户窗体中选择的文件。附加了导入模块的代码。

  With ActiveSheet.QueryTables.Add(Connection:= _
    "TEXT;C:\Users\---\Rainflow Data\J-Rain Outputs\Moment(N-mm).csv" _
    , Destination:=Range("$A$1"))
    .CommandType = 0
    .Name = "Moment(N-mm)"
    .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 = True
    .TextFileSemicolonDelimiter = False
    .TextFileCommaDelimiter = True
    .TextFileSpaceDelimiter = False
    .TextFileColumnDataTypes = Array(1, 1)
    .TextFileTrailingMinusNumbers = True
    .Refresh BackgroundQuery:=False
End With

我需要它来打开我在userform中选择的文件,而不是引用我在录制此宏时选择的文件路径。任何帮助将不胜感激。

由于

1 个答案:

答案 0 :(得分:1)

假设变量yourFilePath具有所选文件的路径,您可以这样做:

With ActiveSheet.QueryTables.Add(Connection:= "TEXT;" & yourFilePath, _
                                 Destination:=Range("$A$1"))
    .CommandType = 0
    .Name = "Moment(N-mm)"
    .FieldNames = True
    .RowNumbers = False
    'etc