首页 文章

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

提问于
浏览
0

我有一个范围(在不同的工作簿中),我希望将值,格式和图片复制到不同的范围(带有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”是一个整数,用于跟踪要粘贴的行的位置范围 .

我尝试在xlPasteFormats之前添加“Application.CopyObjectsWithCells = True”,但尝试这样做时出错 .

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

rngImportCopyRange.Copy wksStartHere.Cells(intRowStartHere, 1)

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

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

但具有上述功能是三次复制/粘贴操作和不合并 . 我希望有一些特殊的操作或技巧,允许脚本不运行,只要它运行 . 感谢您的帮助,谢谢!

1 回答

  • 0

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

相关问题