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

问题描述:

我在Excel VBA中编写了一段代码,其中需要创建一个宏,该宏允许用户单击ActiveX按钮,因此文件是然后保存到指定的位置。一旦创建了这个新文件,我想编写代码,以便新文件(成功保存在备用指定位置)不具有ActiveX命令按钮不存在。另外,一旦从原始文件中点击按钮,我想以某种方式关闭主文件,并将新保存的文件自动打开。请有人可以帮忙吗?Excel VBA代码 - 如何调用创建的文件的某些操作

到目前为止的代码:

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

这将创建一个fi用任何你想要的名字来指定路径。在你做之前,你可以隐藏你的按钮,然后使用保存为副本来隐藏按钮来保存它。

最后如果你想关闭原件并打开副本,那么你必须给复制一个不同的名称。然后打开新文件并关闭原件。

您的代码应与此类似:

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 
+0

Blenikos嗨。感谢您的回答。当我使用这个,.CommandButton1.Visible = False的行会返回一个错误,说对象不支持这个属性或方法? – Syed

+0

我还没有测试代码,所以可以propably有一些错误。我需要你的excel文件来测试它。但是,我编辑了我当前的答案,现在它应该可以工作。请让我知道如果它! – Blenikos

+0

嗨Blenikos,在aprt我们有.Worksheets(“”)我需要写我的文件位置和文件名吗?或者只是表格名称? – Syed