Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3614|回复: 9

[已解决]批量导入文件名并按照文件名批量添加图片的VBA

[复制链接]
发表于 2015-8-10 19:26 | 显示全部楼层 |阅读模式
如题,
目的是,对指定文件夹下的n多图片文件进行自动处理,
1. 在某列自动导入该目录下文件的文件名,不要拓展名,就是不要.jpg这样的文件拓展名;
2. 在某列自动根据导入的文件名,进行对应在文件夹下的图片导入,图片导入后的尺寸可以固定为某一尺寸。

求大神们给我个vba。多谢多谢了!
屏幕剪辑的捕获时间 2015810 星期一 2043.jpg
最佳答案
2015-8-10 19:55
Test2.rar (275.63 KB, 下载次数: 40)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-8-10 19:28 | 显示全部楼层
建议上传excel文件、3张图片,手动插入好,以查看最终效果。
回复

使用道具 举报

 楼主| 发表于 2015-8-10 19:39 | 显示全部楼层
爱疯 发表于 2015-8-10 19:28
建议上传excel文件、3张图片,手动插入好,以查看最终效果。

回版主,我权限不够,不让上传附件啊。。。。。只能上图。。
回复

使用道具 举报

发表于 2015-8-10 19:42 | 显示全部楼层
alexaxis 发表于 2015-8-10 19:39
回版主,我权限不够,不让上传附件啊。。。。。只能上图。。

不存在权限问题,新会员也可以发附件。你检查下

1)无法上传时,提示什么?
2)excel文件是否压缩过?
3)压缩后的文件大小有多大?
回复

使用道具 举报

 楼主| 发表于 2015-8-10 19:43 | 显示全部楼层
爱疯 发表于 2015-8-10 19:28
建议上传excel文件、3张图片,手动插入好,以查看最终效果。

可以上传了。麻烦你将他们放到一个目录里看下多谢多谢。
Test.rar (148.7 KB, 下载次数: 16)
回复

使用道具 举报

发表于 2015-8-10 19:55 | 显示全部楼层    本楼为最佳答案   
Test2.rar (275.63 KB, 下载次数: 40)

评分

参与人数 1 +1 收起 理由
alexaxis + 1 赞一个!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2015-8-10 20:07 | 显示全部楼层
爱疯 发表于 2015-8-10 19:55
类似问题:http://www.excelpx.com/thread-368486-1-1.html

太牛了!!我好好研究一下你的vba,我已经报名参加学习班了,希望早日能像你这样。多谢多谢啦!!
回复

使用道具 举报

 楼主| 发表于 2015-8-10 20:23 | 显示全部楼层
爱疯 发表于 2015-8-10 19:55
类似问题:http://www.excelpx.com/thread-368486-1-1.html

超版大牛,
继续叨扰你,请看下边的代码:

1. 我标红的那句,可不可以改为在当前目录下的自动获取图片,而不是非要指定某个目录
比如我将图片和excel表格放到同一个目录下,然后运行这个宏就可以自动匹配并添加图片了。现在的状况是我必须把图片放到目录名为pic的目录下,再在跟pic同级的目录运行宏才可以生效。


'插入图片
Sub InsertPic()
    Dim A(1 To 3), i%, p$, f$
    ActiveSheet.Pictures.Delete
    A(1) = 2       'InputBox("开始行号:")
    A(2) = Range("a65536").End(xlUp).Row       'InputBox("结束行号:")
    A(3) = 1        'InputBox("间隔行数:")
    p = ThisWorkbook.Path & "\pic\"

    For i = A(1) To A(2) Step A(3)
        f = p & Cells(i, "A")   '序号的列
        If Dir(f) <> "" Then
            With Cells(i, "B")    '图片的列
                ActiveSheet.Shapes.AddPicture Filename:=f, _
                                              LinkToFile:=msoTrue, _
                                              SaveWithDocument:=msoTrue, _
                                              Left:=.Left, _
                                              Top:=.Top, _
                                              Width:=.Width, _
                                              Height:=.Height
            End With
        End If
    Next i
End Sub

2. 可以烦请你,帮我添加一段自动读取文件夹内文件的文件名并去掉文件扩展名的代码吗?
谢谢啦!




回复

使用道具 举报

发表于 2015-8-10 20:57 | 显示全部楼层
不明白第2个的意思,自动读取文件夹内文件的文件名,和你的表格有什么关系?
回复

使用道具 举报

 楼主| 发表于 2015-8-10 21:05 | 显示全部楼层
爱疯 发表于 2015-8-10 20:57
不明白第2个的意思,自动读取文件夹内文件的文件名,和你的表格有什么关系?

意思是说,这个宏要可以读取文件夹内的文件名并输出到表格里,然后第二步,根据文件名来添加照片。


回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 09:23 , Processed in 0.502883 second(s), 23 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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