如果我理解正確,您想將當前工作表複製到現有工作簿上的新工作表,剝離出任何公式或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工作簿的路徑表的名稱。
謝謝。你知道這是否會保存圖表嗎? –
哎呀,對不起。錯過了。修正後的代碼會將每個圖表作爲圖像複製到目標工作表。但是,如果在運行之前目標表單上有任何實際圖像,它將不會運行。 – hoopzbarkley
非常感謝。我會說這種方法不太正確(圖表出現相同和錯誤的位置),但粘貼值的想法是非常有用的。 –