将图像从一个工作簿复制到另一个工作簿

时间:2017-07-22 09:17:11

标签: excel vba image

我在合并的单元格范围S1:V8中的sheet1中有一个图像。

我不知道这张照片的名称,因为每次我们从模板创建一个新的Excel文件时,我们会在该区域粘贴不同的图片。

我想将此工作簿或其他工作簿中此范围内的图片复制到名为"数据库"进入细胞A6。

我找到了几个例子,但我们必须知道图片名称。

我想要第一张照片。我想我可以检查范围是否有图片。然后选择第一张图片并将其粘贴到另一张工作簿中。

我唯一能做的就是选择范围内的图片进行复制。

如果可能,奖励功能:
  - 之后我想将它调整到单元格尺寸,但保持纵横比
  - 我想压缩到96 dpi后   - 这个文件将有几张图片。有没有办法将它们全部调整到每个单元格是否有人修改图片尺寸? (在A6单元格中会有一张图片,在单元格A7中会有另一张图片,......,有人可能会在A20中更改图片的大小)

post也在MrExcel论坛中。

enter image description here

1 个答案:

答案 0 :(得分:1)

目前尚不清楚您所指的图片是“在细胞内”还是漂浮在细胞上方。据我所知,在“单元格”中创建图片的唯一方法是将其放在单元格的注释中(实际上,用作评论文本的背景图片)。在任何一种情况下,使用VBA操纵它的关键是获取它的参考。如果您首先选择单元格区域,则以下代码将识别上述任一情况的存在,如动画gif所示。不幸的是,据我所知,您所能做的就是通过VBA将背景图片添加到评论中。 enter image description here

Option Explicit
Sub testForPicturesOrComments()
Dim p As Picture, r As Range, hasComment As Boolean
For Each p In ActiveSheet.Pictures
  MsgBox ("There's a picture called " & p.Name)
Next p
For Each r In Selection
  On Error Resume Next
  hasComment = r.Comment.Parent.Address = r.Address
  'Reset Run Time Errors
  On Error GoTo 0
  If hasComment Then
  MsgBox ("There's a comment in " & r.Address _
  & " with a shape.ID = " & r.Comment.Shape.ID)
    hasComment = False
  End If
Next r
End Sub