ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2178|回复: 3

EXCEL批量插入批注图片,如果没有相对应的图片就不插入对应表格批注的办法!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-7-30 14:18 | 显示全部楼层 |阅读模式
Sub 批量插入同名照片到批注()
Dim a
a = MsgBox("【特别注意】:选中图片文件夹,保证图片文件名与插入批注表格的内容一样!", vbOKCancel, "【蓝迪资料员HM】")
Dim cell As Range, fd, t
Dim PicPath As String
Dim ErrCell As String
Selection.ClearComments
On Error Resume Next
Set fd = Application.FileDialog(msoFileDialogFolderPicker) '允许用户选择一个文件夹
If fd.Show = -1 Then
t = fd.SelectedItems(1) '选择之后就记录这个文件夹名称
End If
For Each cell In Selection
With cell.AddComment
.Visible = True
.Text Text:=""
.Shape.Select True
Selection.ShapeRange.Fill.UserPicture t & "\" & cell.Text & ".jpg"
.Shape.Width = 150 'Add these 2 statement
.Shape.Height = 150
Selection.ShapeRange.Fill.UserPicture t & "\" & cell.Text & ".png"
.Shape.Width = 150 'Add these 2 statement
.Shape.Height = 150
cell.Offset(1, 0).Select
.Visible = False
End With
Next
End Sub[url=]收起[/url]

在这个区域批量插入对应的图片的时候,我现在只弄了三张对应图片,但是现在选中的区域虽然把对应的图片插入上了,但是没有图片的表格也插入了批注,只是没有图片,我希望这样的没有图片的表格就不插入批注的方法!

批量.zip

420.01 KB, 下载次数: 58

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-30 14:19 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
请高手帮忙看看要怎么实现啊,以后还有许多问题要请大家帮助啊,拜托了!

TA的精华主题

TA的得分主题

发表于 2018-9-17 11:26 | 显示全部楼层
Sub 查看图片()

    'ExcelHome VBA编程学习与实践 看见星光
    Dim Arr, i&, k&, n&, pd&
    Dim PicName$, PicPath$, FdPath$
    Dim Rng As Range, Cll As Range
    On Error Resume Next
    '用户选择图片所在的文件夹
    With Application.FileDialog(msoFileDialogFolderPicker)
        .AllowMultiSelect = False '不允许多选
       If .Show Then FdPath = .SelectedItems(1) Else: Exit Sub
    End With
    If Right(FdPath, 1) <> "\" Then FdPath = FdPath & "\"
    Set Rng = Application.InputBox("请选择需要插入图片到批注中的单元格区域", Type:=8)
    '用户选择需要插入图片到批注中的单元格或区域
    If Rng.Count = 0 Then Exit Sub
    Set Rng = Intersect(Rng.Parent.UsedRange, Rng)
    'intersect语句避免用户选择整列单元格,造成无谓运算的情况
    Arr = Array(".jpg", ".jpeg", ".bmp", ".png", ".gif")
    '用数组变量记录五种文件格式
    Application.ScreenUpdating = False
    For Each Cll In Rng
    '遍历选择区域的每一个单元格
        Cll.Comment.Delete '删除旧的批注
        PicName = Cll.Text '图片名称
        If Len(PicName) Then '如果单元格存在值
            PicPath = FdPath & PicName '图片路径
            pd = 0 'pd变量标记是否找到相关图片
            For i = 0 To UBound(Arr)
            '由于不确定用户的图片格式,因此遍历图片格式
                If Len(Dir(PicPath & Arr(i))) Then
                '如果存在相关文件
                    Cll.AddComment '增加批注
                    With Cll.Comment
                        .Visible = True '批注可见
                        .Text Text:=""
                        .Shape.Select True '选中批注图形
                        Selection.ShapeRange.Fill.UserPicture PicPath & Arr(i)
                        '插入图片到批注中
                        .Shape.Height = 100 '图形的高度,可以根据需要自己调整
                        .Shape.Width = 55 '图形的宽度,可以根据需要自己调整
                        .Visible = False '取消显示
                    End With
                    pd = 1 '标记找到结果
                    n = n + 1 '累加找到结果的个数
                    Exit For '找到结果后就可以退出文件格式循环
                End If
            Next
            If pd = 0 Then k = k + 1 '如果没找到图片累加个数
        End If
    Next
    MsgBox "共处理成功" & n & "个图片,另有" & k & "个非空单元格未找到对应的图片。"
    Application.ScreenUpdating = True


End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-7-26 20:55 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 646804566 于 2019-7-26 21:00 编辑
z13437807298 发表于 2018-9-17 11:26
Sub 查看图片()

    'ExcelHome VBA编程学习与实践 看见星光

哦,自己没看到,其实是有这个功能的
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-29 17:36 , Processed in 0.050118 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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