我有一个表格供用户提交小动作,添加,更改等请求。
在过去的几年里,它对我来说非常出色,但现在任何外部客户都无法使用它,因为我们的公司邮件阻止.xlsm扩展。
显然我需要使用.xlsm来创建文件,但我需要将其更改为.xlsx,以便将其发送给我。
我目前使用的代码如下。任何人都可以帮我修改它以将扩展名更改为.xlsx吗?
Sub Mail_workbook_Outlook_3()
Dim wb1 As Workbook
Dim wb2 As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim FileExtStr As String
Dim Site As String
Dim ChangeType As String
Dim OutApp As Object
Dim OutMail As Object
Dim Requestor As String
Dim implementationDate As String
Dim notice As String
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
Set wb1 = ActiveWorkbook
Site = Range("d21").Text
ChangeType = Range("D11").Text
Requestor = Range("d13")
implementationDate = Range("n10")
notice = DateDiff("d", Now, implementationDate)
TempFilePath = Environ$("temp") & "\"
TempFileName = "SMAC Request " & "Logged on " & Format(Now, "dd-mmm-yy h-mm-ss")
FileExtStr = "." & LCase(Right(wb1.Name, Len(wb1.Name) - InStrRev(wb1.Name, ".", , 1)))
wb1.SaveCopyAs TempFilePath & TempFileName & FileExtStr
Set wb2 = Workbooks.Open(TempFilePath & TempFileName & FileExtStr)
我尝试使用以下行更改它但是它会抛出错误,说Excel无法打开文件,因为文件格式或扩展名无效,请验证扩展名是否与文件格式匹配。
'FileExtStr = ".xlsx": FileFormatNum = 51
所有帮助表示赞赏
答案 0 :(得分:0)
与SaveAs
方法不同,SaveCopyAs
方法具有FileFormat
的可选参数(有关讨论,请参阅this)。以下子文件,您可以根据自己的目的修改,当从.xlsm
文件运行时,将保存具有相同名称的文件的无宏副本(但使用.xlsx
而不是{{ 1}})与包含宏的文件位于同一目录中。它不会删除.xlsm
文件 - 尽管您可能希望在运行此文件之前保存所有工作:
.xlsm