VBA excel:使用Workbook_BeforeSave和ActiveWorkbook.SaveAs

时间:2016-02-16 21:55:08

标签: excel vba save-as before-save xlsm

我正在构建一个放置在专用网络上的共享文件夹中的表单。由单个用户使用的“母亲形式”是生成“儿童形式”的模板。使用电子表格中的信息保存时。

要命名我的孩子表单',我使用Workbook_BeforeSave事件。我收集了命名文件所需的信息。然后,我保存为我的文件的名称。所有文件都在同一个文件夹中。

我的代码在我的计算机上工作正常(Excel 2016)但由于某些原因,它并不适用于所有计算机(我已经注意到Excel 2013上的问题,但没有注意到2010年)。

我检查了每个用户是否拥有对包含文件的文件夹的正确访问权限。他们无法手动保存为。

以下是我用来保存的代码:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.DisplayAlerts = False
Application.EnableEvents = False

Cancel = True

'Variable definition
Dim Contrat As String
Dim Projet As String
Dim Requisition As String
Dim Marque As String
Dim RefPeinture As String

'Get variable values
Contrat = Feuil1.Range("C3").Value
Projet = Feuil1.Range("C4").Value
Requisition = Feuil1.Range("F5").Value
Marque = Feuil1.Range("F6").Value
RefPeinture = Feuil1.Range("C7").Value

'Determining file name
NomDeFichier = "F:\Peinture (Inspection)\Année actuelle\" & Contrat & "_" & Projet & "_" & RefPeinture & "_" & Requisition & "_" & Marque & ".xlsm"

'Saving as file name in .xlsm (fileformat = 52)
ActiveWorkbook.SaveAs _
    Filename:=NomDeFichier, _
    FileFormat:=52, _
    Password:="", _
    WriteResPassword:="", _
    ReadOnlyRecommended:=False, _
    CreateBackup:=False

'Inserting document proporty for keyword
ThisWorkbook.BuiltinDocumentProperties("Keywords").Value = Feuil1.Range("C3").Value

Application.EnableEvents = True
Application.DisplayAlerts = True

End Sub

0 个答案:

没有答案