【发布时间】:2016-04-25 16:47:40
【问题描述】:
我有一个范围(在不同的工作簿中),我希望将值、格式和图片复制到不同的范围内(带有 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
但上述内容是三个复制/粘贴操作和一个取消合并。我希望有一些特殊的操作或技巧可以让脚本无法运行。感谢您的帮助,谢谢!
【问题讨论】:
标签: image vba excel copy-paste