我想从另一个工作簿复制工作表并替换ThisWorkbook中的工作表 . 但是,我不想删除ThisWorkbook中的工作表,因为我在其他工作表上有公式引用此特定工作表 . 通过首先删除工作表,我的公式将最终为#REF .
因此,我编写了以下代码,但此代码不复制图表:
Sub Copy_from_another_workbook
Dim wb As Workbook
Dim sWorksheet As String
ThisWorkbook.Worksheets("Destinationsheet").Cells.ClearContents
Set wb = Workbooks.Open(ThisWorkbook.Worksheets("input").Range("sFileSource"), ReadOnly:=True, UpdateLinks:=False)
sWorksheet = ThisWorkbook.Worksheets("input").Range("sWorksheetSource")
wb.Worksheets(sWorksheet).Cells.Copy
ThisWorkbook.Worksheets("Destinationsheet").Activate
ThisWorkbook.Worksheets("Destinationsheet").Range("A1").Select
Selection.PasteSpecial xlPasteValues, operation:=xlNone, skipblanks:=False, Transpose:=False
Selection.PasteSpecial xlPasteColumnWidths
Selection.PasteSpecial xlPasteFormats
Selection.UnMerge
wb.Close
End Sub
此代码没有错误但不复制图表 . 我还没有找到一种方法来复制带有pastespecial的图表,我从this post了解到,在选择范围时你不能使用Paste方法 .
如何粘贴数据,包括图表,仍然可以使用pastespecial,因为我不想粘贴公式?
或者是否有其他方法可以达到要求的结果?
2 回答
您无需激活或选择任何内容 . 这是您自己的代码评论版本,修改后不做这个并部分重新排列 .
我无法测试运行代码 .
将代码更改为: