解决如下问题:

  • 需要批量导入图片到Excel
  • 图片放在一个文件夹中
  • 图片有严格的顺序关系,即按照:共通名_编号的方式命名。
  • 图片格式统一,即均为同一格式。

有两种方式可以插入图片到Excel中,其一为插入快捷方式,在自己的电脑可以显示,但在别人的电脑显示不了。

其二为添加图片到文件,也有几种保存方式,可以选择。

> 现约定:
  • 图片文件夹为PicPath
  • 图片的共通名为PicComName
  • 图片导入到Excel的InstLine and InstCol 单元格中
  • 图片的间隔行为AddLine
  • 图片的宽,高分别为PicWit and PicHgt
  • 最小/大编号数字:MinNum/MaxNum
  • 数字格式:FormatNum(例如:1用0001表示,即数字为4位,不足4位用0补齐。)
  • 图片格式:FormatPic(例如:jpg,png等)

第一种方式

插入链接

    Sub InsertImg()
‘此处省去变量申请
Dim Index As Integer
Dim PicName As String
For Index = MinNum To MaxNum
RangeIset = InstCol & InstLine
PicName = PicPath & "\" & PicComName & Format(Index,FormatNum) & "." & FormatPic
Range(RangeIset).Select
ActiveSheet.Pictures.Insert(PicName).Select
’如果是一溜排下来,就讲AddLine设置为1,其他同理,主要是要适用非一个单元格一个图片的情况。
InstLine = InstLine + AddLine
Next
End Sub

以上是插入图片的一种方式,但是该图片只在自己电脑可见,那么怎么样才能将图片与文档一起保存?

第二种方式

插入图片

以上的变量均沿用

  • 第一种方案是插入链接的形式,大大减少了该文档的大小,但是,也有诸多限制,本方案是直接将图片保存在Excel中,同样也有很多限制。适用于不同的需求。
    Sub InstSavePic()
'基本骨架沿用,变量声明取消。
For Index = MinNum To MaxNum
RangeIset = InstCol & InstLine
PicName = PicPath & "\" & PicComName & Format(Index,FormatNum) & "." & FormatPic
Range(RangeIset).Select
With ActiveCell
ActiveSheet.Shapes.AddPicture Filename:=PicName, _
LinkToFile:=msoFalse , SaveWithDocument:=msoTrue, _
Left:=.Left, Top:=.Top, Width:=PicWit, Height:=PicHgt
End With
’如果是一溜排下来,就讲AddLine设置为1,其他同理,主要是要适用非一个单元格一个图片的情况。
InstLine = InstLine + AddLine
Next
End Sub

这里说明以下AddPicture的几个参数,分别表示说明意思。

AddPicture的原型为expression.AddPicture(FileName, LinkToFile, SaveWithDocument, Left, Top, Width, Height

其中

  • FileName

    • 文件名(包含地址)
  • LinkToFile:图片和文件的关系
  • SaveWithDocument:保存文档时与图片的关系
  • Left : 图片的左段离左边线的距离
  • Top : 图片的顶端离顶端的距离
  • Width : 图片的宽度
  • Height:图片的高度。
    • 以上以为单位
说明:
Left:=.Left表明插入图片的坐边线和该活动单元格的左边线的距离一样。同理Top
当然也可以将图片填充为一个单元格。
Width:=.Width(同理Height)即可。

若不明白可以百度AddPicture.

--20160218

【VBA】批量插入图片的更多相关文章

  1. Python多线程Threading爬取图片,保存本地,openpyxl批量插入图片到Excel表中

    之前用过openpyxl库保存数据到Excel文件写入不了,换用xlsxwriter 批量插入图片到Excel表中 1 import os 2 import requests 3 import re ...

  2. EPPlus批量插入图片到Excel

    #region 测试EPPlus插入图片        public static void Createsheel2()        {                      WebClien ...

  3. VBA批量导入图片到多Word文档并加标题(会飞的鱼)

    感谢会飞的鱼大牛~ Public fp$, obmapp As Object Sub kk() 文件夹浏览器 Application.ScreenUpdating = False Set fso = ...

  4. 20170813pptVBA批量插入图片

    Sub AddSldIn() Dim Pre As Presentation Dim NewSld As Slide Set Pre = Application.ActivePresentation ...

  5. Excel催化剂开源第40波-Excel插入图片做到极致的效果

    不知道是开发人员的自我要求不高还是用户的使用宽容度足够大,在众多Excel插入图片的版本中,都没有考虑到许多的可大幅度提升用户体验的细节处理. Excel催化剂虽然开发水平有限,但也在有限的能力下,尽 ...

  6. 个人永久性免费-Excel催化剂功能第89波-批量多图片转PDF

    前一篇展示了从PDF中提取到有用信息如图片.文本.表格等功能,部分人可能对自己手中的转PDF格式的保护性有所顾虑,此篇从反向角度,提供数据保护作用,让PDF文件的数据保护更彻底,让文本型的PDF文件彻 ...

  7. 个人永久性免费-Excel催化剂功能第32波-空行空列批量插入和删除

    批量操作永远是效率提升的王道,也是Excel用户们最喜欢能够实现的操作虽说有些批量操作不一定合适Excel的最佳实践操作,但万千世界,无奇不有,特别是在国人眼中领导最大的等级森严的职场环境下.Exce ...

  8. word 2013 题注、图注、插入图片自动修改大小、批量更新题注编号

    1 .题注 图片下面的文字说明,如  图 1.1.1 2.图注 图的标题格式,可以右键修改段落为居中,选中图片,点下此格式快捷居中等其他格式 3. 题注插入 效果 如下 4.题注自动居中对齐 先点击图 ...

  9. java插入图片到数据库(可以批量)

    package sundun.zfpt.gg.web; import java.io.File; import java.io.FileInputStream; import java.sql.Con ...

随机推荐

  1. ASP------如何使界面布局具有一致外观

    使用布局页或布局块的方法 转载: http://www.runoob.com/aspnet/webpages-layout.html

  2. SQLServer------如何删除列为NULL的行

    delete from WeiXinInfo where ManagerID IS NULL;

  3. 10月21日上午MySQL数据库学习内容复习

    1.创建数据库create database 数据库名称删除数据库drop database 数据库名称 2.创建表create table 表名(列名 类型(长度) 自增长 主键 非空,)自增长:a ...

  4. MathML + MathJax在网页中插入公式

    http://www.mathjax.org/download/ http://www.w3.org/Math/Software/mathml_software_cat_editors.html ht ...

  5. 取出return array() 数组内容

    d.php文件 return array( "0" => 内容一, "1" => 内容二, "2" => 内容三, &qu ...

  6. 常用的JS HTML DOM 事件

    HTML DOM 事件 HTML DOM 事件允许Javascript在HTML文档元素中注册不同事件处理程序. 事件通常与函数结合使用,函数不会在事件发生前被执行! (如用户点击按钮). 提示: 在 ...

  7. JS获取字符串实际长度(包含汉字)

    方法一: var jmz = {}; jmz.GetLength = function(str) { ///<summary>获得字符串实际长度,中文2,英文1</summary&g ...

  8. line-height:150%和 line-height:1.5 的区别

    父元素line-height为150%或1.5em时,依据父元素的字体大小计算出行高值让子元素继承父元素line-height为1.5时,依据子元素字体大小计算其行高值.

  9. 使用Robomongo 连接MongoDB 3.x 报 Authorization failed 解决办法(转)

    最近安装了mongodb3.1.4,并启用了权限验证,在dos窗口下操作没有任何问题,为了维护方便就下载了一个客户端工具Robomongo 0.8.5,用户名.密码的等配置好点解测试,结果连接服务没有 ...

  10. Oracle nvl(),nvl2()函数介绍

    NVL函数 Oracle/PLSQL中的一个函数. 格式为: NVL( string1, replace_with) 功能:如果string1为NULL,则NVL函数返回replace_with的值, ...