如何確定打開的工作簿是否爲模板(.xltm)。基本上,我有一個模板。如果用戶以.xltm文件打開模板(右鍵單擊>打開)並嘗試運行宏,我應該阻止執行宏。 如果用戶雙擊模板,它將以.xlsm打開,在這種情況下,我沒有問題。如何獲取打開的工作簿的文件擴展名
有人能幫我解決這個問題嗎?提前致謝。
問候,
如何確定打開的工作簿是否爲模板(.xltm)。基本上,我有一個模板。如果用戶以.xltm文件打開模板(右鍵單擊>打開)並嘗試運行宏,我應該阻止執行宏。 如果用戶雙擊模板,它將以.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
(如果你有他們隱藏.Name
不會返回擴展名),你可以使用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
輸出到inmediate窗口,U可以Ctrl+G
或VB編輯器的視圖菜單中打開它。
我認爲這個答案不回答OP的問題。如果我們已經有文件的路徑/名稱,這只是尋找任何文件擴展名的非常通用的代碼。 – rineez 2018-01-05 06:25:07