ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 关于自动插入图片的问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-7-2 17:29 | 显示全部楼层 |阅读模式
在另一个版块看到关于自动插入图片的问题探讨,很激动
因为我日常工作中用到的频率很高,每次都只能安排助理一个货号一个货号的贴图,速度奇慢.
可是,在那边版快放了好多天也没人理会,所以把链接贴过来,希望有高手能帮忙解决,不胜感激
http://club.excelhome.net/viewth ... &extra=page%3D1

TA的精华主题

TA的得分主题

发表于 2009-7-2 18:03 | 显示全部楼层
  1. Sub InsertPic()
  2.     Dim iRow As Single, Shp As Shape, Target As Range, FilPath As String
  3.     With ActiveSheet
  4.         For iRow = 4 To .Cells(65536, 1).End(xlUp).Row
  5.             FilPath = ThisWorkbook.Path & "" & .Cells(iRow, 2) & ".jpg"
  6.             If Dir(FilPath) <> "" Then
  7.                 .Pictures.Insert(FilPath).Select
  8.                 Set Target = .Cells(iRow, 3)
  9.                 With Selection
  10.                     .Top = Target.Top + 1
  11.                     .Left = Target.Left + 1
  12.                     .Width = Target.Width - 1
  13.                     .Height = Target.Height - 1
  14.                 End With
  15.             End If
  16.         Next
  17.     End With
  18. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2009-7-2 18:12 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
仅供参考。。

技巧114 在员工登记表中自动插入图片.rar

38.57 KB, 下载次数: 442

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-7-2 20:05 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢楼上的两位老师
问个外行的问题:图片来源如果改变的话,应该把以上的VBA语言改动哪里呢?

PS:我对VBA和宏一窍不通

TA的精华主题

TA的得分主题

发表于 2009-7-2 20:07 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
将红色部分改为你自己的文件夹名称:
FilPath = ThisWorkbook.Path & "\" & .Cells(iRow, 2) & ".jpg"

[ 本帖最后由 风之助 于 2009-7-2 20:09 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-7-3 09:57 | 显示全部楼层
对不起大家,还是没搞懂 依葫芦画瓢了,还是不行
我把源文件发上来,哪位大侠帮我看看哪里错了好不好?我的品图片是存在F盘目录下的命名为"服装图片"的文件夹里,图片后缀名全部为".BMP".

因为平时用到这个功能的频率确实太高,所以只能先请大家帮忙,用上再说.
最近我在学透视表和函数,有点基础后会努力学VBA.
谢谢大家

[ 本帖最后由 美人计 于 2009-7-3 17:22 编辑 ]

TA的精华主题

TA的得分主题

发表于 2009-7-3 11:19 | 显示全部楼层
  1. Sub 简洁()
  2.     Dim iRow As Single, Shp As Shape, Target As Range, FilPath As String
  3.     With ActiveSheet
  4.         For iRow = 2 To .Cells(65536, 1).End(xlUp).Row
  5.             FilPath = "F:\服装图片" & .Cells(iRow, 4) & ".bmp"
  6.             If Dir(FilPath) <> "" Then
  7.                 .Pictures.Insert(FilPath).Select
  8.                 Set Target = .Cells(iRow, 5)
  9.                 With Selection
  10.                     .Top = Target.Top + 1
  11.                     .Left = Target.Left + 1
  12.                     .Width = Target.Width - 1
  13.                     .Height = Target.Height - 1
  14.                 End With
  15.             End If
  16.         Next
  17.     End With
  18. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-7-3 16:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
可能是我太笨了,宏还是运行不了
我已经把图片的附件一起上传了,在6楼,大家帮我看看好吗?
我的图片名称是跟"6月30日报表"里的货号一样的,即以货号来选择相对应的图片,
图片名称有的没有"A"开头,是不是会有影响?可是我把名称都改成跟货号一样了,还是运行不了.
另外,是不是"6月30日报表"里面货号不在第一列也有关系?

TA的精华主题

TA的得分主题

发表于 2009-7-3 16:32 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
改了你的图片命名,因为图片的命名在表里没有。

桌面.rar

484.63 KB, 下载次数: 640

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-7-3 17:26 | 显示全部楼层
换了个工作表,楼上的代码又不行了,见附件
弄了一个下午,也试了YUANZHUPING老师的VBA代码解析,也没成功

我在想,除了图片路径,其他的应该不需要更改什么吧?实在不明白

代码如下:
Sub inserpic()
Application.ScreenUpdating = False
    Dim iRow As Single, Shp As Shape, Target As Range, FilPath As String, sh As Object
    ActiveSheet.Shapes.SelectAll
    On Error GoTo 1
    For Each sh In Selection
        If Left(sh.Name, 3) = "Pic" Then sh.Delete
    Next
1:

    With ActiveSheet
        For iRow = 2 To .Cells(65536, 1).End(xlUp).Row
            FilPath = ThisWorkbook.Path & "\图片\" & .Cells(iRow, 4) & ".bmp"
            If Dir(FilPath) <> "" Then
                .Pictures.Insert(FilPath).Select
                Set Target = .Cells(iRow, 5)
                With Selection
                    .Top = Target.Top + 1
                    .Left = Target.Left + 1
                    .Width = Target.Width - 1
                    .Height = Target.Height - 1
                End With
            End If
        Next
    End With
    Application.ScreenUpdating = True

End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-6-11 18:15 , Processed in 0.037317 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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