Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖
楼主: 今又

EXCEL2007 图片批量插入,单击图片改变大小

[复制链接]
发表于 2015-8-4 17:03 | 显示全部楼层
本帖最后由 爱疯 于 2015-8-4 17:06 编辑

插入图片并通过单击改变图片大小4.rar (279.79 KB, 下载次数: 105)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

 楼主| 发表于 2015-8-4 17:04 | 显示全部楼层
还有一种可能,这个序号无库存无法拍照,就造成了有序号无照片的情况,有照片没有编号是不可能的,所以有的照片单元格是空的
回复

使用道具 举报

发表于 2015-8-4 17:12 | 显示全部楼层
今又 发表于 2015-8-4 17:04
还有一种可能,这个序号无库存无法拍照,就造成了有序号无照片的情况,有照片没有编号是不可能的,所以有的 ...

如果是有序号无照片,不要紧。
因为代码只在有序号且有照片时,才执行插入图片。
再看看,还有什么情况。


另外,回帖时最好在对方楼层中点回复。
这样,当你的回帖时给对方后,对方会有提示。
回复

使用道具 举报

 楼主| 发表于 2015-8-4 17:30 | 显示全部楼层
爱疯 发表于 2015-8-4 17:12
如果是有序号无照片,不要紧。
因为代码只在有序号且有照片时,才执行插入图片。
再看看,还有什么情况 ...

好的,太感谢了[em17]。省了很多时间,明天上午看,如果有问题,会继续请教的,下班啦

点评

没什么,OK  发表于 2015-8-4 17:45
回复

使用道具 举报

 楼主| 发表于 2015-8-10 15:15 | 显示全部楼层
今又 发表于 2015-8-4 17:30
好的,太感谢了。省了很多时间,明天上午看,如果有问题,会继续请教的,下班啦

Option Explicit

'插入图片
Sub InsertPic()
    Dim A(1 To 3), i%, j%, p$, f$

    ActiveSheet.Pictures.Delete
    A(1) = 5        'InputBox("开始行号:")
    A(2) = 124       'InputBox("结束行号:")
    A(3) = 1        'InputBox("间隔行数:")
    p = ThisWorkbook.Path & "\pic\"

    For i = A(1) To A(2) Step A(3)
        f = p & Cells(i, 1) & ".jpg"
        If Dir(f) <> "" Then
            With Cells(i, "I")
                ActiveSheet.Shapes.AddPicture Filename:=f, _
                                              LinkToFile:=msoTrue, _
                                              SaveWithDocument:=msoTrue, _
                                              Left:=.Left, _
                                              Top:=.Top, _
                                              Width:=.Width, _
                                              Height:=.Height
            End With
        End If
    Next i
    Call SetOnAction
End Sub

'设置单击指定对象时运行的宏的名称
Sub SetOnAction()
    Dim shp As Shape
    For Each shp In ActiveSheet.Shapes
        If shp.Type = 11 Then shp.OnAction = "ActionClick"
    Next
End Sub

'单击图片所执行的事情
Sub ActionClick()
    Dim n
    n = 3 '放大系数
    With ActiveSheet.Shapes(Application.Caller)
        .ZOrder msoBringToFront
        If .Width = Range("i:i").Width Then
            .Width = .Width * n: .Height = .Height * n
        Else
            .Width = .Width / n: .Height = .Height / n
        End If
    End With
End Sub
你好,老师,我现在要更改序号列和插入图片的列,应该怎么改,如果图片在G列,序号在H列,自己试着改了一下不成功,

谢谢啦

回复

使用道具 举报

发表于 2015-8-10 15:36 | 显示全部楼层
插入图片并通过单击改变图片大小5.rar (280.32 KB, 下载次数: 44)
回复

使用道具 举报

发表于 2015-8-10 19:40 | 显示全部楼层
回复

使用道具 举报

发表于 2022-3-26 16:20 | 显示全部楼层
文件不能下载了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-10 08:15 , Processed in 0.291069 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表