【发布时间】:2017-07-10 13:06:19
【问题描述】:
我查看了这里并尝试了许多解决方案,但无法让我的代码按预期运行。
我有一个启用宏的工作簿,其中一个模块位于名为“原始”的工作表上
我创建了第二张工作表作为主工作表,其中添加了一个按钮来复制“原始”工作表并将副本另存为启用宏。
当我打开复制的文件时,宏仍然引用初始文件。我希望宏只在复制的文件中,因为我无法将源文件分发给用户。
以下是我的代码
==>我如何复制文件
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
感谢您的帮助!
【问题讨论】:
-
也许this article 会帮助你,解释如何将宏模块导出到另一本书。
-
“当我打开复制的文件时,宏仍然引用初始文件”:实际上除了复制的工作表之外,新工作簿中没有保存任何代码。源工作簿的其他模块中的宏根本不会复制到新工作簿中。他们确实参考了他们自己的工作簿。我不完全了解您面临的问题。你能进一步澄清吗?
-
非常感谢。我希望新复制的文件也有宏模块。
-
@费尔南多。谢谢你。我复制了工作表,但代码不在里面