Excel VBA - 保存前禁用表单

时间:2013-06-05 09:59:29

标签: excel excel-vba vba

我在Excel 2010中创建了一个简单的电子表格,其中包含一个在电子表格打开时加载的表单。员工填写所需的表单数据,并使用SaveAs方法按下“保存”按钮宏。

我的问题是,是否可以在保存的副本中禁用表单?原因是当我们的簿记部门打开副本以审查数据时,我想避免加载表单。

澄清这是我的vba代码

Sub SaveAsButton()
Dim applicationUserName As String
Dim saveLocation As String
Dim fileName As String
Dim weekNo As String
Dim year As String

weekNo = ThisWorkbook.Sheets("Service").Range("M4").Value
Debug.Print (weekNo)
year = ThisWorkbook.Sheets("Service").Range("R4").Value
Debug.Print (year)
applicationUserName = Application.UserName
Debug.Print (applicationUserName)
saveLocation = "w:\Service Users\" & applicationUserName & "\Service\"
Debug.Print (saveLocation)
fileName = "Service" & "-" & weekNo & "-" & year & "-" & applicationUserName
Debug.Print (fileName)
fileName = Replace(fileName, " ", "")
Debug.Print (fileName)

ThisWorkbook.SaveAs (saveLocation & fileName)

End Sub

谢谢。

2 个答案:

答案 0 :(得分:2)

您可能希望使用CustomProperties

首先,创建一个CustomProperty

ActiveWorkbook.CustomDocumentProperties.Add "Saved", False, msoPropertyTypeNumber, 0

当用户保存表单时,将CustomProperty的值更改为1(将以下代码添加到SaveAsButton()):

ActiveWorkbook.CustomDocumentProperties("Saved").Value = 1

检查ActiveWorkbook.CustomDocumentProperties("Saved").Value = 0是否为打开表单的方法。

答案 1 :(得分:2)

如果您在最终工作簿中不需要任何代码,则只需保存为.xlsx,从而删除所有vb组件