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

如何获取Excel活动工作表所在文件夹名称并填入单元格

获取激活工作表所属文件夹的实现方法

Excel 没有内置名为 ActiveFolder 的可直接调用函数,但可以通过以下两种方案实现「将当前激活工作表所属文件夹名称填入单元格」的需求:

注意:工作表本身依附于所属的Excel工作簿文件存在,不存在独立于工作簿的存储路径,你需要获取的本质是当前激活工作表所属工作簿的存储文件夹路径。

方法1:无宏内置公式方案(适用于已保存的本地工作簿)

不需要写代码,直接用Excel内置函数组合即可实现,操作步骤:

  • 选中需要填入文件夹名称的目标单元格
  • 若要获取完整的文件夹上级全路径,输入以下公式后回车即可:
    =LEFT(CELL("filename",A1),FIND("[",CELL("filename",A1))-2)
    
  • 若仅需要当前文件夹的名称(不需要上层完整路径),输入以下公式后回车即可:
    =TRIM(RIGHT(SUBSTITUTE(LEFT(CELL("filename",A1),FIND("[",CELL("filename",A1))-2),"\",REPT(" ",99)),99))
    

注意:该方案仅对已经保存到本地磁盘的工作簿生效,未保存的新建工作簿使用该公式会返回空值

方法2:VBA自定义函数方案(可复用,支持类内置函数调用)

如果需要更稳定的调用体验,可以自行封装同名的ActiveFolder自定义函数,操作步骤:

  • 按快捷键 Alt+F11 打开VBA编辑器
  • 在左侧工程资源管理器面板右键点击当前工作簿,依次选择「插入」-「模块」
  • 在弹出的代码编辑窗口粘贴以下代码:
    Function ActiveFolder() As String
        ' 获取当前激活工作表所属工作簿的文件夹路径
        Dim currentWb As Workbook
        Set currentWb = ActiveSheet.Parent
        If currentWb.Path <> "" Then
            ' 返回完整文件夹路径,若只需要文件夹名称,注释掉下一行、启用后续对应代码即可
            ActiveFolder = currentWb.Path
            ' ActiveFolder = Mid(currentWb.Path, InStrRev(currentWb.Path, "\") + 1)
        Else
            ActiveFolder = "当前工作簿未保存,无有效存储路径"
        End If
    End Function
    
  • 粘贴完成后关闭VBA编辑器回到Excel界面,即可在任意单元格直接输入=ActiveFolder()调用,和内置函数用法一致,自动返回对应文件夹内容。
    注意:保存带有VBA代码的工作簿时,需要选择「Excel 启用宏的工作簿(.xlsm)」格式,否则自定义函数会失效*

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 22:39:19