簡體   English   中英

自動填充只讀Excel 2010 xlsm SaveAs文件名框

[英]Autofill Read only Excel 2010 xlsm SaveAs file name box

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim saveIt As Boolean

If ThisWorkbook.Name = "Test.xlsm" Then
    Sheets("Sheet1").Select

    If Not IsEmpty(A1.Value) Then

        MsgBox "This workbook is 'read only' Please rename this workbook."
        strName = "Please enter a new file name."
    ThisPAth = Application.ActiveWorkbook.Path
        ThisFile = Range("B1").Value
        ActiveWorkbook.SaveAs Filename:=ThisPath & ThisFile & ".xlsm", FileFormat:=52, CreateBackup:=False
    Else
        MsgBox "Cancelled."
    End If

End If
End Sub

我有一個受密碼保護的工作簿(Test.xlsm“,嚴格用於數據輸入。當用戶以只讀方式打開工作簿,輸入數據,然后退出工作簿/模板時,我想要自動彈出的SaveAs對話框使Sheet1的A1的內容成為在SaveAs框中自動填充的“建議”文件名。

我想如果我抓住了BeforeSave函數,我可以聲明這個路徑/文件名但是唉,它不起作用。 自動填充框顯示“Copy of Test.xlsm”。 我甚至認為它沒有看到上面的代碼。

如何使用所需名稱完成此框的自動填充。 謝謝。

------------更新------------------

將代碼重寫為下面但仍然沒有在保存時阻止默認對話框。 也許我誤解了Workbook_BeforeSave功能。 我認為只要文件被保存就會自動調用它。 我從不希望用戶使用名稱Test.xltm保存文件(我將文件更改為模板以查看是否有所不同),但建議用戶將文件重命名為B1中的值以用於標准化原因。 代碼不會自動調用。 如果我通過從快速訪問工具欄執行宏來調用它,我能夠獲得類似的代碼,但是當用戶選擇“關閉”,“保存”或“另存為”時,似乎無法自動執行它從“文件”下拉菜單中。

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim saveDialog As FileDialog
Debug.Print "Hello"
Set saveDialog = Application.FileDialog(msoFileDialogSaveAs)

If ThisWorkbook.Name = "Test.xltm" Then
    Application.EnableEvents = False
    Debug.Print "Save as"
    Set saveDialog = Application.FileDialog(msoFileDialogSaveAs)
    With saveDialog
        .InitialFileName = "foo.xlsm"
        .Show
    End With
    Application.EnableEvents = True
Else
    Debug.Print "Cancel"
End If
End Sub

模板受密碼保護,並由用戶只讀打開,因此SaveAs對話框應始終在退出/保存/另存為時打開。 正確? 在這種情況下,Workbook_BeforeSave是否應該始終被調用?

例:

Sub saveDialogTest()
    Dim saveDialog As FileDialog

    Set saveDialog = Application.FileDialog(msoFileDialogSaveAs)

    With saveDialog
        .InitialFileName = "Foo.xlsx"
        .Show
    End With
End Sub

如果您使用這樣的FileDialog ,它將允許您更改建議的文件名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM