如何获得打开的工作簿的文件扩展名
如何确定打开的工作簿是否是模板(.xltm)。 基本上,我有一个模板。 如果用户以.xltm文件打开模板(右键单击>打开)并尝试运行一个macros,我应该阻止一个macros被执行。 如果用户双击模板,它会打开为.xlsm,在这种情况下,我没有问题。
有人可以帮我解决这个问题吗? 提前致谢。
问候,
你可以使用下面的例子来获得文件的扩展名
Sub extd() Dim extFind As String Dim sFile As String Const FilePath As String = "C:\Users\aa\Desktop\devces.docx" sFile = Dir(FilePath & filename & "*") extFind = Right$(sFile, Len(sFile) - InStrRev(sFile, ".")) MsgBox extFind End Sub
我正在寻找相同的。 由于ActiveWorkbook.Name
取决于Windows属性Hide extensions for known file types
(如果你有他们隐藏。名称不会返回扩展名),你可以使用Workbook.FileFormat
。 根据XlFileFormat enumeration
返回一个整数值。 所以,检查:
Option Explicit Sub sample() Debug.Print ActiveWorkbook.FileFormat Select Case ActiveWorkbook.FileFormat Case xlOpenXMLWorkbookMacroEnabled '52 xlsm Debug.Print "Its a workbook with macros enabled" Case xlOpenXMLTemplateMacroEnabled '53 xltm Debug.Print "Its a template with macros enabled" Case xlWorkbookDefault '51 xlsx Debug.Print "Its a workbook without macros" End Select End Sub
Debug.Print
输出到中间窗口,你可以用Ctrl+G
或在VB编辑器的视图菜单中打开它。