1

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

为了命名我的“子表单”,我使用 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

结束子

4

0 回答 0