我在Excel中有一个对象,希望将其粘贴为其他选项卡中的图片。该对象包含各种名称,它们的字体很小(字体大小为2)。
下面是负责复制/粘贴对象图像的代码段,到目前为止,它只能粘贴文本模糊且不可读的图像。但是,当我放大到原始形状时,文本会很好看。我需要的图像必须具有足够高的分辨率才能以326%的缩放率可读。
代码:
Dim strMap As String
'Creating a new image
strMap = "mapGroup3" 'Name of an object
Sheets("Maps (Prov)").Select
ActiveSheet.Shapes(strMap).Copy
Sheets("Image").Select
Range("a1").Select
ActiveSheet.Pictures.Paste.Select
'Application.ScreenUpdating = True
我尝试使用.PasteSpecial指定格式,但最终出现以下错误:
Run-time error '438':
Object does not support this property or method
上述错误的代码:
'Creating a new image
strMap = "mapGroup3"
Sheets("Maps (Prov)").Select
ActiveSheet.Shapes(strMap).Copy
Sheets("Image").Select
Range("a1").Select
ActiveSheet.Pictures.PasteSpecial _
Format:=3, Link:=False, DisplayAsIcon:=False
答案 0 :(得分:2)
粘贴为图片或图像总是导致仅粘贴可见像素。因此,对于可见尺寸,质量是最佳的。
如果您需要精确复制源文件中的质量,则不应使用“粘贴为”,而应仅从剪贴板复制/粘贴:
Worksheets("Maps (Prov)").Shapes("mapGroup3").Copy
Worksheets("Image").Paste Destination:=Worksheets("Image").Range("D4")
当然,这会粘贴与源中相同的对象。如果您确实需要更改对象的种类,例如复制一定范围的单元格并将其粘贴为图片(图像),那么除了复制之前要使源足够大,别无其他方法。源越大,后期粘贴的像素越多,质量就越好。
不幸的是,这并不像听起来那样简单。例如,如果要复制一定范围的单元格并以高质量将其粘贴为图片(图像),则需要在复制之前使该范围内的所有对象更大。即行高,列宽,字体大小...。复制后反之亦然。并且必须先将已分组的形状取消分组,然后在复制之前调整所有单个组成员的大小。复制后反之亦然。