这个专辑主要收录一些常用Word VBA代码
在 Word VBA中,很多地方都需要用到文档的名称,比如在使用 SaveAs2 转换文件格式时,需要设置保存的文件路径,亦或者是文档批量合并时,想声明此文档的文件名。
但Word VBA中的文件名只有三种:
而当我要使用纯文件名时,就比较麻烦,尤其是纯文件名中带有“.”这种情况,就更不好处理。
这里分享两个获取文档各种路径的代码,一个是传入document 类型的数据,一个是传入全路径的字符串形式,方便大家使用:
Public Function getWordFileName(doc As Document, Optional whichName As String = "onlyName") As String
'C:\FOLDER\file.docx
Select Case whichName
Case "完整路径", "FullName" 'C:\FOLDER\file.docx
getFileName = doc.FullName
Case "所在目录", "Path" 'C:\FOLDER
getFileName = doc.Path
Case "文件名", "Name" 'file.docx
getFileName = doc.Name
Case "反斜杠", "Separator", "分隔符" '\
getFileName = Word.Application.PathSeparator
Case "纯文件名", "onlyName" 'file
getFileName = Left(doc.Name, InStrRev(doc.Name, ".") - 1)
Case "扩展名", "extension" 'docx
getFileName = Right(doc.Name, Len(doc.Name) - InStrRev(doc.Name, "."))
End Select
End FunctionPublic Function getAllFileName(fileName As String, Optional getType As String = "name") As String
'D:\1\2\3.4.TXT
Dim posD As Integer, posS As Integer
posD = InStrRev(fileName, ".")
posS = InStrRev(fileName, "\")
Select Case getType
Case "name", "文件名"
getName = Mid(fileName, posS + 1, posD - posS - 1) '3.4
Case "path", "文件路径"
getName = Left(fileName, posS) 'D:\1\2\
Case "pathNs", "文件路径无分隔符"
getName = Left(fileName, posS - 1) 'D:\1\2
Case "file", "文件全名"
getName = Mid(fileName, posS + 1) '3.4.TXT
Case "ext", "带点扩展名"
getName = Mid(fileName, posD) '.TXT
Case "extNd", "扩展名"
getName = Mid(fileName, posD + 1) 'TXT
Case "fullName", "文件全址"
getName = fileName 'D:\1\2\3.4.TXT
End Select
End Function而在使用时,也比较容易,只需要定义一个字符串变量,将函数所获得的值赋给变量即可:
Dim doc As String
doc = getAllFileName("C:\User\Document
ew doc.docx","name") '返回值 new doc | 留言与评论(共有 0 条评论) “” |