如何解决VBA-将工作表复制到新工作簿,而无需原始工作簿参考
我有一个例程,该例程将从“主”模板工作簿(包含我的客户的所有模板)中复制选定的工作表,并将特定客户模板的选定工作表粘贴到新的工作簿中(该例程也生成)。
代码可以正常工作,并且很重要地可以复制到公式上,该公式将客户特定的“数据记录表”(始终是复制的所选工作表中的第一张工作表)中的文本/数据/值跨入所有其他所选工作表中复制到新的工作簿中。
但是,它还会将引用复制到“母版”中的原始图纸上,例如:
='[MasterTemplate.xlsm]DATA LOG SHEET (CUSTOMER NAME)'!B10)
我正在复制的工作表需要以完全相同的格式进行复制,这是我目前拥有的例程:
Sub ArrayCustomerDocPackTemplateGenerator()
Dim myArray() As String
Dim myRange As Range
Dim Cell As Range
Dim OldBook As String
Dim newBook As String
Dim a As Long
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.DisplayAlerts = False
Set myRange = Sheets("Sheet1").Range("B4:B11")
'Or the range with your sheetnames
OldBook = ActiveWorkbook.Name
For Each Cell In myRange
If Not Cell = "" Then
a = a + 1
ReDim Preserve myArray(1 To a)
myArray(a) = Cell
End If
Next
For a = 1 To UBound(myArray)
If a = 1 Then
Sheets(myArray(a)).Copy
newBook = ActiveWorkbook.Name
Workbooks(OldBook).Activate
Else
Sheets(myArray(a)).Copy After:=Workbooks(newBook).Sheets(a - 1)
Workbooks(OldBook).Activate
End If
Next
MsgBox "New Customer Doc Pack generated!",vbOKOnly
End Sub
我已经为每个客户创建了该例程的多个副本,这些副本与按钮相关联。例程的每个版本中唯一真正的区别是例程从中提取单元格的范围(列出特定的客户工作表名称)。
我的问题是,是否有一种方法可以在不复制“主”模板的单元格工作簿引用的情况下,将所有具有全部格式和内部公式的工作表复制到新工作簿?
此外,我的例程是否需要首先先生成和/或命名新工作簿,然后然后从“主”模板复制工作表才能工作?>
如果是这样,我该怎么办?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。