VBA保存宏启用文件引用原始文件

时间:2017-07-10 13:06:19

标签: vba excel-vba copy excel

我看了这里并尝试了很多解决方案,但无法按预期运行我的代码。

我有一个支持宏的工作簿,其中一个模块名为" Original"

我创建了第二张作为主页,其中添加了一个按钮来复制"原始"选择工作表并将副本保存为启用宏。

当我打开复制的文件时,宏仍然会引用初始文件。我希望宏只是在复制的文件中,因为我无法将源文件分发给用户。

以下是我的代码

==>我如何复制文件

 Sub createNew(fineName As String)
    Dim mybook As Workbook
    Set mybook = ThisWorkbook
    Set newBook = Workbooks.Add
    mybook.Sheets("Original").Copy Before:=newBook.Sheets(1)
    Set newWs = newBook.Sheets("Original")
    newWs.Name = Left(fineName, 30)  
End Sub

==>我如何保存文件

 Sub savefile(fname As String, compid As Long)
    fname = "PS_" & fname
    Set newBook = ActiveWorkbook
    Application.DisplayAlerts = False

        newBook.SaveAs fname, FileFormat:=xlOpenXMLWorkbookMacroEnabled
        Application.DisplayAlerts = True

   closefile newBook

End Sub

我将非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

谢谢大家。我可以解决这个问题。感谢您的评论,我意识到我必须将模块复制到新复制的文件

Sub CopyOneModule()
Dim FName As String
With Workbooks("Book2")
*** FName = .Path & "\code.txt"
*** .VBProject.VBComponents("Module1").Export FName
End With
Workbooks("book1").VBProject.VBComponents.Import FName
End Sub