2013-06-05 52 views
2

我在Excel 2010中創建了一個簡單的電子表格,其中包含一個在電子表格打開時加載的表單。員工填寫所需的表單數據並使用SaveAs方法按下「保存」按鈕宏。Excel VBA - 保存前禁用表單

我的問題是如果可以禁用保存的副本中的表單?原因是我想避免在我們的簿記部門打開副本審查數據時加載表單。

爲了澄清這是我的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

如果你沒有在最後的工作簿所需的任何代碼,你可以簡單地保存爲的.xlsx,從而刪除所有動部件

+0

這是最簡單的解決方案 - 謝謝! –

2

您可能需要使用CustomProperties

首先,創建一個CustomProperty

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

變化的價值CustomProperty1當用戶保存的形式(以下代碼添加到SaveAsButton()):

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

添加一個檢查,如果ActiveWorkbook.CustomDocumentProperties("Saved").Value = 0到打開表單的方法。

+0

這也工作了,雖然JosieP的解決方案是在這種特定情況下更好。感謝您花時間解釋! –