【VBA】批量插入图片
解决如下问题:
- 需要批量导入图片到Excel
- 图片放在一个文件夹中
- 图片有严格的顺序关系,即按照:共通名_编号的方式命名。
- 图片格式统一,即均为同一格式。
有两种方式可以插入图片到Excel中,其一为插入快捷方式,在自己的电脑可以显示,但在别人的电脑显示不了。
其二为添加图片到文件,也有几种保存方式,可以选择。
> 现约定:
- 图片文件夹为
PicPath - 图片的共通名为
PicComName - 图片导入到Excel的
InstLineandInstCol单元格中 - 图片的间隔行为
AddLine - 图片的宽,高分别为
PicWitandPicHgt - 最小/大编号数字:
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】批量插入图片的更多相关文章
- Python多线程Threading爬取图片,保存本地,openpyxl批量插入图片到Excel表中
之前用过openpyxl库保存数据到Excel文件写入不了,换用xlsxwriter 批量插入图片到Excel表中 1 import os 2 import requests 3 import re ...
- EPPlus批量插入图片到Excel
#region 测试EPPlus插入图片 public static void Createsheel2() { WebClien ...
- VBA批量导入图片到多Word文档并加标题(会飞的鱼)
感谢会飞的鱼大牛~ Public fp$, obmapp As Object Sub kk() 文件夹浏览器 Application.ScreenUpdating = False Set fso = ...
- 20170813pptVBA批量插入图片
Sub AddSldIn() Dim Pre As Presentation Dim NewSld As Slide Set Pre = Application.ActivePresentation ...
- Excel催化剂开源第40波-Excel插入图片做到极致的效果
不知道是开发人员的自我要求不高还是用户的使用宽容度足够大,在众多Excel插入图片的版本中,都没有考虑到许多的可大幅度提升用户体验的细节处理. Excel催化剂虽然开发水平有限,但也在有限的能力下,尽 ...
- 个人永久性免费-Excel催化剂功能第89波-批量多图片转PDF
前一篇展示了从PDF中提取到有用信息如图片.文本.表格等功能,部分人可能对自己手中的转PDF格式的保护性有所顾虑,此篇从反向角度,提供数据保护作用,让PDF文件的数据保护更彻底,让文本型的PDF文件彻 ...
- 个人永久性免费-Excel催化剂功能第32波-空行空列批量插入和删除
批量操作永远是效率提升的王道,也是Excel用户们最喜欢能够实现的操作虽说有些批量操作不一定合适Excel的最佳实践操作,但万千世界,无奇不有,特别是在国人眼中领导最大的等级森严的职场环境下.Exce ...
- word 2013 题注、图注、插入图片自动修改大小、批量更新题注编号
1 .题注 图片下面的文字说明,如 图 1.1.1 2.图注 图的标题格式,可以右键修改段落为居中,选中图片,点下此格式快捷居中等其他格式 3. 题注插入 效果 如下 4.题注自动居中对齐 先点击图 ...
- java插入图片到数据库(可以批量)
package sundun.zfpt.gg.web; import java.io.File; import java.io.FileInputStream; import java.sql.Con ...
随机推荐
- html img src base64
网页上有些图片的src或css背景图片的url后面跟了一大串字符,比如:data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAYAAABId ...
- Envelope Letter
http://www.thefullwiki.org/More_C%2B%2B_Idioms/Envelope_Letter http://www.smallmemory.com/almanac/Co ...
- swiper 增加同页面增加2个滚动
js代码 <script type="text/javascript"> var mySwiper = new Swiper('.slide_a',{ noSwipin ...
- Xcode打印frame id
开启 打开终端输入三条命令: . touch ~/.lldbinit . echo display @import UIKit >> ~/.lldbinit . echo target s ...
- js获取iframe里的body内容
做个页面 需要加入a.html 使用的js动态添加iframe 直接JQ添加的 代码 $(".banner-box").after(“<iframe src="ht ...
- Orchard源码分析(3):Orchard.WarmupStarter程序集
概述 Orchard.WarmupStarter程序集包含三个类:WarmupUtility.WarmupHttpModule和Starter<T>.该程序集主要为Orchard应用启动初 ...
- python 日志收集系统
服务器端: #!/usr/bin/env python # -*- coding:utf-8 -*- import socket ip_port = ('0.0.0.0',9999) sk = soc ...
- python mysql
mysql Linux 安装mysql: apt-get install mysql-server 安装python-mysql模块:apt-get install python-mysqldb Wi ...
- 使用自己的ClassLoader实现热替换
首先实现一个自己的ClassLoader,该ClassLoader重写findClass方法. 从classpath中加载类资源. 注意,不要重写loadClass方法. 因为在使用自定义的MyCl ...
- 大数据架构师NoSQL建模技术
从数据建模的角度对NoSQL家族系统做了比较简单的比较,并简要介绍几种常见建模技术. 1.前言 为了适应大数据应用场景的要求,Hadoop以及NoSQL等与传统企业平台完全不同的新兴架构迅速地崛起.而 ...