如何使用宏获取 Word 文档的当前文件名(不带扩展名或完整路径)?

2024-01-17

我有代码可以提取文件的完整路径,减去扩展名,并且我正在尝试将其修改为仅存储文件名,再次不包含扩展名。

Sub ShowFilename()

Dim pathName As String
With ActiveDocument
If Len(.Path) = 0 Then
.Save
End If
If Right(.Name, 1) = "x" Then
pathName = Left$(.FullName, (Len(.FullName) - 5))
Else
pathName = Left$(.FullName, (Len(.FullName) - 4))
End If
End With
MsgBox pathName

End Sub

这显示C:\Users\test,文档的名称是test.docm。如何修改它以仅显示文件名?我需要把绳子分开吗\并提取最后一部分?


FSO 有一组针对此类事物的方法,其中之一是“getBaseName”

Msgbox CreateObject("scripting.filesystemobject").getbasename(o.Name)

http://msdn.microsoft.com/en-us/library/xhxzwwe1(v=vs.84).aspx http://msdn.microsoft.com/en-us/library/xhxzwwe1(v=vs.84).aspx

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用宏获取 Word 文档的当前文件名(不带扩展名或完整路径)? 的相关文章

  • 复制数据透视表格式

    我无法将数据透视表格式复制到新工作表 基本上我想做的是 someRange Copy someOtherRange pasteSpecial xlPasteValues someOtherRange pasteSpecial xlPaste
  • 使用 VBA 将数据从 Excel 导出到现有 PowerPoint 幻灯片

    我正在编写一个小型 excel 插件来进行一些简单的数据分析 但不幸的是我不是 VBA 程序员 到目前为止我已经做了什么 从巨大的 Excel 工作簿中获取数据并执行计算 将结果写入预先格式化的 Excel 骨架 文件 我接下来想要做什么
  • 使用VBA删除Excel中的非重复数据

    我尝试删除非重复数据并保留重复数据 我已经完成了一些编码 但什么也没发生 哦 这是错误 哈哈 这是我的代码 Sub mukjizat2 Dim desc As String Dim sapnbr As Variant Dim shortDe
  • 将单元格背景颜色设置为其包含的 RGB 值。如何?

    下面是我希望通过手动复制和粘贴以外的方式实现的屏幕截图 这是材料设计调色板 在 Excel 中看起来很棒 如何循环遍历范围 B2 B15 并将每个单元格背景颜色设置为其相应的包含颜色 也许是一个VBA loop去经历垂直 B 单元格范围 解
  • 如何通过VBA代码修复仅在Excel共享模式下发生的运行时错误400

    我真的不知道400错误是什么原因造成的 下面的代码在正常模式下运行得很好 但是一旦我在共享模式下启用 Excel 并尝试使用用户表单 它就会给我 VBA 400 我在这里尝试做的是在向用户显示用户表单后更改形状的文本并禁用其 OnActio
  • 用于更新 Word 文档中所有字段的宏

    多年来 我构建了一个 vba 宏 该宏应该更新 Word 文档中的所有字段 我在发布文档进行审查之前调用此宏 以确保所有页眉和页脚等均正确 目前 它看起来像这样 Sub UpdateAllFields UpdateAllFields Mac
  • 尝试使用变量作为自动过滤器中的条件,并带有“不等于”<>,但无法使其工作

    我正在使用 Excel VBA 使用 不等于 表达式来过滤列表 如果我使用Criteria1 lt gt Bob 代码运行完美 但如果我将 Bob 更改为变量 代码将无法运行 这有效 ActiveSheet ListObjects Rpt
  • CURL 相当于使用 VBA 的 POST JSON 数据

    我知道这与之前提出的一些问题类似 但有些东西仍然对我不起作用 如何执行以下命令 curl X POST data statements json H Content Type application json user username p
  • Excel VBA:排序,然后复制和粘贴

    所有 我需要编写一个执行以下操作的宏 将数据输入到 E 列的最后一个空白单元格后 按 E 列对整个工作表进行降序排序 工作表排序后 2a 将单元格复制到紧邻首次输入数据的单元格左侧的相邻单元格 2b 将复制的数据粘贴到最初输入数据的同一行的
  • 获取给定日期的周数

    例子 DD MM YYYY 1 1 2009 should give 1 31 1 2009 should give 5 1 2 2009 should also give 5 Format 1 2 2009 ww 回报6 那么 怎样才能得
  • 关闭工作簿时删除范围,xls vba

    我想要范围 Range A2 G z 关闭工作簿时删除 有人可以帮我处理代码吗 谢谢 凯 这就是我尝试过的 Option Explicit Sub Makro1 insert clipboard Workbooks Pfl SchutzSt
  • 将 Word 转换为 PDF - 禁用“保存”对话框

    我有一个用 C 编写的 Word 到 PDF 转换器 除了一件事之外 它工作得很好 有时 在某些 Word 文件上 后台会出现一条消息保存源文件中的更改 gt 是 否 取消 但我没有对源文件进行任何更改 我只想从 Word 文件创建 PDF
  • 如果一个数字写在方括号中,例如[5],这意味着什么

    我正在开发一个旧版 VBA Excel 应用程序 并偶然发现了一些代码行 其中长字符串 从文件中读取 被切成碎片 这些行看起来像这样 Range E16 Value Mid line 49 6 显然 写 6 意味着需要 6 个字符 但我从未
  • 使用 VBA 使用另一个表中的值更新访问表

    我在数据库中有两个表 表 1 和表 2 我正在尝试根据表 2 中的数据使用 VBA 代码更新表 1 Example Table 1 PartNo Price Description A 100 B 200 Bad C 300 Table 2
  • 当存储在集合中时,如何更改类属性的值

    我想将一个类存储在集合中 并且能够更改该类的属性 而不必删除集合项并再次将其添加回来 我的研究表明 如果不进行删除 替换操作 则无法更改项目本身 但是项目的属性又如何呢 下面的代码展示了如何执行此操作 当您运行宏时 调试窗口将显示存储对象的
  • 在单元格更改时循环遍历一系列单元格,以将序列中的下一个数字显示为单元格的新值

    我了解如何循环范围 For Each cell In Range A1 A5 If condition Then End If Next 我知道 OnChange 事件 Private Sub Worksheet Change ByVal
  • 如何根据文本框值过滤列表框值

    我在用户窗体上有一个文本框和一个列表框 我想根据我在文本框中输入的值过滤列表框中的值 名为 TMP 的工作表具有值 我根据文本框更改事件对其进行过滤 但在将该值添加到列表框中时它 会自动退出 Private Sub Textbox1 Cha
  • 将 CSV 导入 Excel - 自动“文本到列”和“插入表格”

    我想在 Excel 2010 上打开 CSV 逗号分隔 文件并自动将文本转换为列 然后选择所有活动单元格并插入带标题的表格 是否可以在我的功能区中添加一个按钮来为我完成这一切 我经常使用不同大小的 CSV 文件 我发现每次手动执行此操作有点
  • VBA 写入文件时对数值进行四舍五入 - 如何防止?

    在下面的代码中 我在确保文件编写器不会将我的数字四舍五入到一定的小数位数时遇到问题 我需要使用变体 因为有时该值是字符串 有时它是数字 我怎样才能强制它准确地写出变量是什么 例如 下面的代码可能显示 0 00038 我想显示确切的值 Dim
  • 使用 Excel 2010 通过存储过程读取/写入 SQL Server 2008 数据库

    我们有一个 SQL Server 2008 数据库 它有存储过程来处理读 写等 这些过程由各种应用程序内部使用 需要一个人直接更新数据库中名为 Employee 的表 更新非常简单 更新 VARCHAR 和 INT 外键 字段 问题是 Sh

随机推荐