VBA从单元格复制粘贴形状

时间:2018-02-05 10:26:01

标签: excel vba excel-vba

我制作了一个代码,可以创建用于打印的标签和条形码 由于其他原因(为简单起见),我在一张单独的纸张上放了一些标签,然后我需要转移到真正的纸张上。
我找到了一些关于CopyObjectsWithCells的提及,但它对我不起作用。

Application.CopyObjectsWithCells = True
Sheets("Robot").Range("A1:L" & Lastrow).Copy
Sheets("Etikett").Range("A" & intRad).PasteSpecial Paste:=xlPasteAll

我得到相同的结果range().select然后selection.copy

Sheets("Robot").Shapes.SelectAll
Selection.Copy

作品。但它使粘贴的图像成为一个大图像,而不是x小图像/形状。并在纸张上留下覆盖其他文字的白色背景 如果我在Excel中选择范围并按Ctrl + C / V,则会根据需要复制图像 但是对于VBA来说,它只是赢了工作。

示例图像
enter image description here

2 个答案:

答案 0 :(得分:2)

每当遇到问题时,可以用以下方式描述:

我已设法在Excel中手动执行此操作,但找不到正确的VBA代码。

一个好的解决方案是在VBA中使用宏录制器选项并查看它生成的代码,同时在Excel中执行手动操作。在您的情况下,这是它所做的代码,当它只是将两个形状复制到另一个工作表时:

Sub Makro2()
    ActiveSheet.Shapes.Range(Array("Rectangle 1")).Select
    ActiveSheet.Shapes.Range(Array("Rectangle 1", "Rectangle 2")).Select
    Sheets("Tabelle2").Select
    Range("B4").Select
    ActiveSheet.Paste
    Range("M25").Select
End Sub

这段代码真的很糟糕,但它有效,它可以为您提供进一步工作的良好见解。

答案 1 :(得分:1)

选择并复制包含形状的范围后,选择目标单元格,然后使用ActiveSheet.Paste

您使用的选项PasteSpecial Paste:=xlPasteAll不会粘贴形状。