复制/粘贴值,格式和图片(不是公式)

时间:2016-04-25 16:47:40

标签: excel image vba excel-vba copy-paste

我有一个范围(在不同的工作簿中),我希望将值,格式和图片复制到不同的范围(带有vba scipts的活动工作簿)。复制/粘贴多次出现,最多50次(每页最多50页,每页一页)。我已经开始使用xlPasteValues和xlPasteFormats,预先复制了50个范围内的图片(图片相同,每个范围的相同位置重复)。工作簿占用了一点空间,我希望通过复制图片来修剪其基本大小,而不是使用大多数未使用的50个预先复制的集合。

之前的代码看起来像这样(它不会复制图片 - 我曾经复制过所有图片,但这会占用空间):

Set rngImportCopyRange = Range(wksImportedPeakHour.Cells(1, 1), wksImportedPeakHour.Cells(65, 34))
rngImportCopyRange.Copy
wksStartHere.Cells(intRowStartHere, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
rngImportCopyRange.Copy
wksStartHere.Cells(intRowStartHere, 1).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False  

wksImportedPeakHour"是复制范围的工作表(始终在同一位置,数据列在右边,我不想要)和" intRowStartHere"是一个整数,用于跟踪粘贴范围的行。

我已尝试添加" Application.CopyObjectsWithCells = True"就在xlPasteFormats之前,但它尝试这样做时出错。

使用以下代码进行直接复制/粘贴会复制所有内容,但是其他工作簿的公式也会被复制而不是值(不正常):

rngImportCopyRange.Copy wksStartHere.Cells(intRowStartHere, 1)  

现在,我可以复制所有内容,然后取消合并单元格(有些单元格已合并,合并后我无法粘贴特殊的xlPasteValues),然后粘贴值,然后粘贴公式 - 如下所示: / p>

Set rngImportCopyRange = Range(wksImportedPeakHour.Cells(1, 1), wksImportedPeakHour.Cells(65, 34))
rngImportCopyRange.Copy wksStartHere.Cells(intRowStartHere, 1)

Set rngUnMerge = Range(wksStartHere.Cells(intRowStartHere, 1), wksStartHere.Cells(intRowStartHere + 64, 34))
rngUnMerge.UnMerge

rngImportCopyRange.Copy
wksStartHere.Cells(intRowStartHere, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

rngImportCopyRange.Copy
wksStartHere.Cells(intRowStartHere, 1).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

但是上面有三个复制/粘贴操作和一个un-merge。我希望有一些特殊的操作或技巧,允许脚本不运行,只要它运行。感谢您的帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

如果图像中有一个已嵌入工作簿(Application.sheets(x).Shapes.AddPicture)的图像副本,则只需将形状(而不是图像)复制到所需的任何图纸和单元格中即可。没有形状的方法,但某些版本的Excel不喜欢这些方式。