我有一个VBA循环来生成一系列仪表板。它的工作原理是更改一个特定单元格中的双字母代码,执行查找,并允许在该工作表上更新一组图表。到目前为止,我一直在为每个刷新的仪表板导出PDF,但现在我需要在excel中制作该工作表的静态副本。
在交换代码之间,我可以制作更新的工作表的副本,并将其保存在另一个工作簿中。我最终会生成一个包含20个类似工作表的工作簿。我希望图表无限期冻结。
我可以通过阻止自动重新计算来做到这一点,还是有人可以建议另一种方法?工作表本身包含10-15个单独的图表。
答案 0 :(得分:0)
如果我理解正确,您希望将当前工作表复制到现有工作簿上的新工作表,删除任何公式或VBA?这应该做到。
Sub transferStrip(destFile As String)
Dim wbSource As Workbook
Dim wbDest As Workbook
Dim shCopy As Worksheet
Dim shPaste As Worksheet
Dim chtIndex As Integer
Set wbSource = ActiveWorkbook
Set wbDest = Workbooks.Open(destFile)
Set shCopy = wbSource.Sheets("[SheetName]")
shCopy.UsedRange.Copy
Set shPaste = wbDest.Sheets.Add(After:=wbDest.Sheets(wbDest.Sheets.Count))
shPaste.Range("A1").PasteSpecial (xlPasteFormats)
shPaste.Range("A1").PasteSpecial xlPasteValues
chtIndex = 1
For Each ch In shCopy.ChartObjects
shCopy.ChartObjects(chtIndex).CopyPicture
shPaste.Paste
shPaste.Shapes(chtIndex).Left = shCopy.ChartObjects(chtIndex).Left
shPaste.Shapes(chtIndex).Top = shCopy.ChartObjects(chtIndex).Top
Next ch
wbDest.Close (True)
End Sub
您需要更改以将[SheetName]更改为您希望从源工作簿中复制的工作表的名称,并将要复制的工作簿的路径传递给destFile。