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

无需硬编码文件路径 实现CSV内容导入工作表的VBA宏方案

解决VBA导入CSV硬编码路径问题的实现方案

你只需要把原代码里的硬编码绝对路径替换为ThisWorkbook.Path动态获取的当前工作簿所在目录,就能实现只要CSV和启用宏工作簿放在同一文件夹,任意电脑都能正常运行的需求。

修改后的完整代码如下:

Sub LOAD_CME_FUT_RAW()
'
' LOAD_CME_FUT_RAW 宏
' 功能:导入同目录下的cmeg.fut.prf.csv文件数据到当前工作表
'

    Dim csvPath As String
    ' 动态获取CSV路径:当前工作簿所在目录+固定文件名
    csvPath = ThisWorkbook.Path & "\cmeg.fut.prf.csv"
    
    ' 先判断文件是否存在,避免运行时报错
    If Dir(csvPath) = "" Then
        MsgBox "未找到csv文件,请确保cmeg.fut.prf.csv和当前工作簿放在同一个文件夹下", vbExclamation
        Exit Sub
    End If

    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;" & csvPath, Destination _
        :=Range("$A$1"))
        .CommandType = 0
        .Name = "cmeg.fut.prf"
        .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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 _
        , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub

使用注意事项

  • 必须保证CSV文件命名为cmeg.fut.prf.csv,和你保存的.xlsm格式启用宏工作簿放在同一个文件夹内
  • 请先保存你的启用宏工作簿后再运行宏,未保存的新建工作簿无法正确获取所在目录路径
  • 运行宏之前可以先选中你要导入数据的目标工作表,默认会导入到当前激活的工作表A1起始位置

内容的提问来源于stack exchange,提问作者Breaker098

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 06:57:04