You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel 2016如何实现Excel 2013中指定CSV文件导入及数据刷新时的文件选择、现有工作表加载功能?

Excel 2016如何实现Excel 2013中指定CSV文件导入及数据刷新时的文件选择、现有工作表加载功能?

嘿,我正好碰到过类似的困扰,Excel 2016其实用内置的**Get & Transform(原Power Query)**就能实现这个需求,甚至比2013的操作更灵活,下面给你两种靠谱的方案:

方法一:用Get & Transform实现(推荐,无需宏)

这个方法能让你每次刷新时弹出文件选择框,并且把数据加载到指定的现有工作表,还能保留你需要的删除行等数据处理逻辑:

  • 第一步:创建可编辑的文件路径参数
    点击「数据」选项卡 → 「获取数据」→ 「参数」→ 「新建参数」,设置如下:

    • 参数名称:比如CSV文件路径
    • 参数类型:选择「文本」
    • 建议值:选「任意值」
    • 勾选「允许在刷新时编辑」,最后点击确定。
  • 第二步:用参数导入CSV并配置数据处理

    1. 点击「数据」→「获取数据」→「从文件」→「从CSV」,随便选一个CSV文件(只是用来生成数据源模板),进入Power Query编辑器。
    2. 在编辑器里点击「高级编辑器」,把原代码中的固定文件路径替换成刚才创建的参数。比如原代码里的Source = Csv.File("C:\test.csv", ...),改成:
      Source = Csv.File(Excel.CurrentWorkbook(){[Name="CSV文件路径"]}[Content], Delimiter=",", QuoteStyle=QuoteStyle.Csv)
      
      (其他参数保持默认即可,不用改)
    3. 这时候你可以在编辑器里完成删除不需要的行、调整列格式等操作,完成后点击「关闭并上载至」。
    4. 在弹出的对话框里选择「现有工作表」,指定你要加载数据的起始单元格(比如Sheet1!$A$1),点击确定。
  • 第三步:刷新时选择新文件
    以后每次需要刷新数据时,右键点击工作表里的查询数据 → 「刷新」,就会弹出参数编辑框,输入或选择新的CSV文件路径,确认后数据就会自动刷新到指定的现有工作表,之前设置的删除行等操作也会自动应用到新数据上。

方法二:用VBA宏实现(适合自定义需求较多的场景)

如果你更习惯用代码来控制,这个宏可以让你一键选择CSV文件并导入到指定工作表,还能自定义删除行的逻辑:

  1. 按Alt+F11打开VBA编辑器,插入一个新模块(右键点击工作簿 → 「插入」→ 「模块」)。
  2. 粘贴以下代码,记得替换代码里的工作表名称:
Sub RefreshCSVWithFilePick()
    Dim fd As FileDialog
    Dim targetWs As Worksheet
    Dim csvPath As String
    
    ' 替换成你要加载数据的现有工作表名称
    Set targetWs = ThisWorkbook.Worksheets("你的工作表名")
    
    ' 弹出文件选择框,仅显示CSV文件
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    With fd
        .Title = "请选择要导入的CSV文件"
        .Filters.Clear
        .Filters.Add "CSV文件", "*.csv"
        If .Show <> -1 Then Exit Sub ' 用户取消选择则退出
        csvPath = .SelectedItems(1)
    End With
    
    ' 清除现有数据(如果需要保留表头,可改成 targetWs.Range("A2:Z10000").Clear)
    targetWs.Cells.Clear
    
    ' 导入CSV数据到指定工作表的A1单元格
    With targetWs.QueryTables.Add(Connection:="TEXT;" & csvPath, Destination:=targetWs.Range("A1"))
        .TextFileParseType = xlDelimited
        .TextFileCommaDelimiter = True ' 按逗号分隔,其他分隔符可自行调整
        .Refresh BackgroundQuery:=False
    End With
    
    ' 这里可以添加删除指定行的代码,比如删除第3行:
    ' targetWs.Rows(3).Delete
End Sub
  1. 保存工作簿为启用宏的工作簿(.xlsm格式),以后每次要刷新数据时,按Alt+F8选择这个宏运行,就能弹出文件选择框,导入后还会自动执行你设置的删除行操作。

备注:内容来源于stack exchange,提问作者Sun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 14:07:45