解决如下问题:

  • 需要批量导入图片到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. Oracle 的表备份的方法

    1.直接备份(防止误操作后数据库表不能恢复) create table new_table as select * from old_table; 2.创建表头,然后插入列(繁琐的做法) create ...

  2. C++学习之Pair

    C++学习之Pair Pair类型概述 pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下: pair<int, string> a; 表示a中有两个类型, ...

  3. 微信H5手指滑动屏蔽微信的默认效果

    我们的H5页面放在微信上时,如果你向上滑动或者向下滑动屏幕时,会发现一些微信的特征,譬如:网页由www.baidu.com提供. 去掉这个微信的特征,代码如下: var f; n.addEventLi ...

  4. ecshop JSON,ajax.call 异步传输

    1.res = Ajax.call('user.php?act=depot_id', 'id='+v,null,"GET", "JSON",false); 2. ...

  5. How to debug windows service

    Step 1. Add the following code in what you want to debug. System.Diagnostics.Debugger.Launch(); Step ...

  6. Tomcat 系统架构与设计模式

    Tomcat 系统架构与设计模式,第 1 部分: 工作原理 这个分为两个部分的系列文章将研究 Apache Tomcat 的系统架构以及其运用的很多经典设计模式.本文是第 1 部分,将主要从 Tomc ...

  7. linux lsof 用法简介

    1.简介: lsof(list open files)是一个列出当前系统打开文件的工具. 只需输入 lsof 就可以生成大量的信息,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用 ...

  8. Page传回页面的值问题

  9. DNX 版本升级命令

    一.稳定版本 dnvm install latest -a x86 -r clrdnvm install latest -a x86 -r coreclrdnvm install latest -a ...

  10. Linux 脚本 sh 和 ./ 的区别

    如果.不在PATH里面,要执行当前目录下的可执行文件,使用全路径:./executable-file PATH是环境变量,如果将当前目录“./”添加到环境变量中,那么也可以不用“./”,直接输入当前目 ...