Excel VBA 代码 - 如何对创建的文件调用某些操作

Excel VBA Code - How to call certain actions to files created

我正在 Excel VBA 中编写一段代码,我需要在其中创建一个宏,允许用户单击 ActiveX 按钮,然后保存文件到指定位置。创建这个新文件后,我想编写代码,使新文件(成功保存在备用指定位置)没有 ActiveX 命令按钮不存在。此外,一旦从原始文件中单击按钮,我想以某种方式关闭主文件并自动打开新保存的文件。有人可以帮忙吗?

到目前为止的代码:

Sub CommandButton1_Click()

    ActiveSheet.Copy
    Dim SaveName As String
    SaveName = ActiveSheet.Range("C1").Text
    With ActiveWorkbook
    .SaveAs "File path Specified" & _
    SaveName & ".xls"
    .Close 0
    End With

End Sub

我的第一个解决方案(取决于您真正需要做什么)如下:

首先你需要这个:

Me.SaveCopyAs "<full_Path>"

在此处查看更多信息:https://msdn.microsoft.com/en-us/library/office/ff835014.aspx

这将创建一个文件的副本到指定的路径,无论名称如何。在你这样做之前,你可以隐藏你的按钮,然后使用另存为副本来保存它并隐藏按钮。

最后,如果您想关闭原件并打开副本,则必须为副本指定一个不同的名称。然后打开新文件,关闭原来的文件。

您的代码应与此类似:

Sub CommandButton1_Click()
    ActiveSheet.Copy
    Dim SaveName As String
    SaveName = ActiveSheet.Range("C1").Text
    With ActiveWorkbook
        .Worksheets("<your_worksheet>").CommandButton1.visible = False
        .SaveCopyAs "File path Specified" & SaveName & ".xls"
    End With
    Workbooks.Open ("File path Specified" & SaveName & ".xls")
    Workbooks("<Original_name.xlsm>").close False
End Sub

另一个解决方案可能是使用另存为保存工作簿。在此之前保存原件。隐藏按钮。并且saveas会关闭原来的并自动打开新的。

您的代码应如下所示:

Sub CommandButton1_Click()
    ActiveSheet.Copy
    Dim SaveName As String
    SaveName = ActiveSheet.Range("C1").Text
    With ActiveWorkbook
        .Save
        .Worksheets("<your_worksheet>").CommandButton1.visible = False
        .SaveAs "File path Specified" & SaveName & ".xls"
    End With
End Sub