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

时间:2016-11-01 10:06:50

标签: excel macros activex

我正在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

1 个答案:

答案 0 :(得分:0)

我的第一个解决方案(取决于你真正需要做的事情)如下:

首先你需要这个:

wifi

在此处详细了解:https://msdn.microsoft.com/en-us/library/office/ff835014.aspx

这将使用您想要的任何名称将文件的副本创建到指定的路径。在此之前,您可以隐藏按钮,然后使用另存为副本来保存隐藏按钮。

最后,如果要关闭原件并打开副本,则必须为副本指定其他名称。然后打开新文件并关闭原始文件。

您的代码应该与此类似:

Me.SaveCopyAs "<full_Path>"

另一种解决方案可能是使用SaveAs保存工作簿。在此之前保存原始。隐藏按钮。而saveas将关闭原件并自动打开新原件。

您的代码看起来应该是这样的:

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