繁体   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