77百科网
当前位置: 首页 生活百科

excel vba数据一键导出(非常有用的VBA代码)

时间:2023-06-19 作者: 小编 阅读量: 1 栏目名: 生活百科

别担心,既然我们是用VBA来解决问题,解决这种事情重复机械的劳动,当然不是什么难事。进入VBE界面第三步:在VBE工程中插入一个模块。如果文件不多的情况下,按上面的思路手动操作导出也是可以的,其实通过VBA来解决问题也是要先把复杂问题进行简单化,一步步进行分解问题,最终形成完整解决方案。VBA代码使用方式在上面数据准备过程中已经有详细描述了,本次我们直接来运行下代码,实现导出文件中的图片。

本次案例来自悟空问答网友提问,之前由于时间原因,回复比较简单没有给出具体实现方法,今天花时间整理写成图文,希望小伙伴们都可以学会。@沉默的生物钟


实际问题

一、数据模拟--素材准备

为了更加真实的还原提问者遇到的问题,我们需要准备600个且都包含有2个图片的Excel文件。


一两个文件我们可以手动新建就可以了,这可是600个文件呐!别担心,既然我们是用VBA来解决问题,解决这种事情重复机械的劳动,当然不是什么难事。图片我们用以下两个代替,放到当前文件目录下,分别命名为test1.png和test2.png,模拟数据时将test1.png插入到第一个表,test2.png插入到第二个工作表。


test1.png


test2.png




二、数据模拟--分步操作过程


第一步:新建一个Excel文件,将它另存为.xlsm格式。


启用宏的工作簿


第二步:打开新建好的.xlsm文件,按快捷键ALT F11进入VBE界面。


进入VBE界面


第三步:在VBE工程中插入一个模块。


插入模块


第四步:在刚刚新建的模块中粘贴以下代码。


Sub 生成600个含图片的Excel文件()'关闭刷新,防止屏幕抖动Application.ScreenUpdating = False'定义变量iDim i As Integer'定义i从1循环到600For i = 1 To 600'新增一个工作簿Workbooks.Add'往工作簿的第一个工作表中插入图片test1.pngActiveWorkbook.Sheets(1).Pictures.Insert(ThisWorkbook.Path & "\test1.png").Select'往工作簿的第二个工作表中插入图片test2.pngActiveWorkbook.Sheets(2).Pictures.Insert(ThisWorkbook.Path & "\test2.png").Select'将工作簿存储到当前路径下ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & i & ".xlsx"'关闭工作簿ActiveWorkbook.Close'继续循环新建其他工作簿Next'恢复屏幕刷新Application.ScreenUpdating = True'处理完成给出提示MsgBox "600个含图片的Excel文件生成完成!", vbInformation, "提示信息"End Sub


第五步:执行VBA代码,生成我们需要的600个Excel文件


执行VBA代码




三、数据模拟--连贯操作演示:


演示效果


四、图片导出--解决思路

600个案例文件已经准备好了,接下来就是导出文件中的图片:

1. 找出当前目录下的所有Excel文件。

2. 打开找到的Excel文件。

3. 找出Excel文件中的所有工作表。

4. 找出工作表中的所有图片对象。

5. 把找到的每一个图片导出到当前目录下。

如果文件不多的情况下,按上面的思路手动操作导出也是可以的,其实通过VBA来解决问题也是要先把复杂问题进行简单化,一步步进行分解问题,最终形成完整解决方案。VBA代码使用方式在上面数据准备过程中已经有详细描述了,本次我们直接来运行下代码,实现导出文件中的图片。


Sub 导出当前路径下工作簿中的图片()Dim wk$ '定义为工作簿文件Dim i As Integer '定义工作簿中的工作表数量Dim ii As Integer '定义为工作表中的对象个数'关闭刷新,防止抖动Application.ScreenUpdating = False'遍历第一个工作簿文件wk = Dir(ThisWorkbook.Path & "\*.xlsx")'遍历到的文件名不等于空的情况下Do While wk <> ""'如果文件名称和当前的名称是不一样的。If wk <> ThisWorkbook.Name Then'打开遍历到的工作簿Workbooks.Open (ThisWorkbook.Path & "\" & wk)'对打开的工作簿文件进行以下操作With ActiveWorkbook'循环出工作簿中的每一个工作表For i = 1 To .Sheets.Count'循环出工作表中的每一个对象shapeFor ii = 1 To .Sheets(i).Shapes.Count'临时变量,统计shape的个数k = k1'复制shape对象.Sheets(i).Shapes(ii).Copy'创建一个图表对象,宽高与与对象保持一致With .Sheets(i).ChartObjects.Add(0, 0, .Sheets(i).Shapes(ii).Width, .Sheets(i).Shapes(ii).Height).Chart'把图片插入进去.Paste'通过图表对象的导出方法,把图片导出到当前目录下.Export ThisWorkbook.Path & "\" & wk & "_" & k & ".png"'删除图表.Parent.DeleteEnd WithNextNext'关闭打开的工作簿.Close FalseEnd WithEnd If'继续遍历下一个工作簿wk = DirLoop'开启屏幕刷新Application.ScreenUpdating = TrueMsgBox "600个含图片的Excel文件图片导出完成!", vbInformation, "提示信息"End Sub


五、图片导出--操作演示


演示效果



小伙伴们,如果VBA代码有做注释说明,如有任何问题欢迎,评论区讨论,谢谢!

    推荐阅读
  • 网红道德底线(拉大旗扯虎皮的)

    又或许,这样的封禁处罚仍然过轻,对于任何此类拉大旗作虎皮的宣称“正能量”,实则负能量爆棚的播主,永久封禁才能以儆效尤。事实上,在这一个半月中,张乃丹的直播已经被抖音多次通知警告,或者暂时封禁。更何况,以张乃丹为代表的播主隐蔽性更强。截至2020年6月,我国网民已达9.4亿,这其中大量还是未成年人或者涉世未深的青年。

  • 鲜花饼烤制方法(鲜花饼如何烤制)

    鲜花饼烤制方法玫瑰酱和粘米粉混合。均匀分成16份,滚圆备用。每份油皮包入一份油酥,捏紧收口。收口向下盖上保鲜膜静置15分钟。取一份上一步的面团擀开成牛舌状。盖上保鲜膜静置15分钟后,重复上一步骤,在长方向擀开再次卷起,盖上保鲜膜静置15分钟。收口向下排入烤盘,略微压扁,然后用色素印上纹样。放入预热好175度的烤箱中层烤制30分钟即可,若不想上色则在后期盖上锡纸。浓郁玫瑰香的鲜花饼就做好啦。

  • 端午节买火车票退票要手续费吗(元宵节火车票今日开售)

    而春运将于2月25日结束,共计40天。在春运防疫方面,澎湃新闻记者从国铁集团获悉,春运期间国铁集团将科学精准落实疫情防控措施,坚决防止疫情通过铁路春运传播。澎湃新闻记者从铁路上海站获悉,为了做好疫情防控工作,铁路上海站严格按照属地政府要求做好进出站旅客测温工作,劝阻不符合乘车要求的旅客进站上车。出发地与到达地的防疫新政可在铁路12306APP上进行查询。一旦出现退票、余票,12306系统会自动兑现车票并将购票结果通知旅客。

  • 常州武进创业扶持业务办理流程(常州创业扶持资金申请)

    (三)扫码可见:武进区创业扶持资金申领必传材料汇总点击查看

  • 副词知识点总结(有关副词的几个易混淆的考点)

    good的副词形式是well。kindly可作形容词也可作副词。coldly(冷酷地),coolly(冷淡),hotly(热情地),warmly(亲热地)这些词主要用于表达感情方面:Wereceivedthemcoldly.我们很冷淡地接待了他们。Theydeniedtheaccusationhotly.他们激烈地驳斥这些谴责。(愤慨地)Shewelcomeduswarmly.她向我们表示热烈欢迎。(友好地)但是:warmlydressed相当于wearingclothes。

  • 胡萝卜素是维生素A吗

    胡萝卜素是植物激素,主要存在于植物橙色的蔬果中,在动物体内几乎不含,也不能长时间的保留;而维生素A是一种动物性的维生素,在很多动物中含有,属于脂溶性的维生素之一。虽说胡萝卜素是植物性的激素,但是在胃肠内酶的作用之下会转变为维生素A,胡萝卜素中的50%会转变为维生素A,因此,补充胡萝卜素就能补充维生素A。

  • 上饶横峰县临时身份证申办地址(横峰县办身份证在哪里)

    六、有效期:临时居民身份证有效期三个月

  • 唐氏综合征出生后几个月能看出来(世界唐氏综合征日如何科学避免唐氏儿出生)

    世界唐氏综合征日如何科学避免唐氏儿出生每年的3月21日是什么日子?它被定为“世界唐氏综合征日”由于唐氏综合征患者的染色体比正常人额外多了一条第21号染色体,又称为21-三体综合征什么是唐氏综合征?1866年英国医生唐·约翰·朗顿(John。

  • win10更新后开机未找到引导(Win10系统未检测到引导怎么办)

    跟着小编一起来看一看吧!win10更新后开机未找到引导安装的是win10正版操作系统,使用的是UEFI快速启动。启动速度是十分快的,不用经过开机自检。不想使用这种启动速度,可以在电源选项中关闭快速启动。如果要进入BIOS设置,进入系统后点重启电脑,启动速度是比较慢的。