ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 874|回复: 9

[求助] 如何通过点击一个控件按钮批量选择多个单元格并保存至图片至本地文件夹?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-3-26 13:22 | 显示全部楼层 |阅读模式
本帖最后由 atxiaoli 于 2020-3-26 13:36 编辑

各位好!
现在遇到了一个问题,
即:
需要通过点击一个按钮的形式,将:单元格 D6 到 G9  这一片区域的单元格  全部选中(需求1)。
之后将该区域单元格内的内容复制成图片(需求2),并将该图片保存至本地某个文件夹中(需求3)。

保存为图片功能.rar (17.02 KB, 下载次数: 8)

目前在网上找到了一个可以实现类似功能的代码(如下),但该代码1无法将单元格中的内容保存出来,2所能保存出来的图片只能显示其中某一格空白的单元格。

还请各位大牛指点迷津,需求1,2,3中无论是部分知晓还是全部知晓,还望不吝赐教,谢谢!

网上找到的类似功能的代码:

  • Sub test()
  • Dim Newshape As Shape
  •     Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture
  •     ActiveSheet.Paste
  •      Set Newshape = ActiveSheet.Shapes(ActiveSheet.Shapes.Count)
  •      With ActiveSheet.ChartObjects.Add(1, 1, 1, 1)
  •          .Width = Newshape.Width
  •          .Height = Newshape.Height
  •           Newshape.Copy
  •          .Chart.Paste
  •          .Chart.Export ActiveWorkbook.Path & "\Myjpg.jpg"
  •          .Delete
  •      End With
  •      Newshape.Delete
  •    MsgBox "恭喜!图片已生成并存放在" & ActiveWorkbook.Path
  • End Sub




TA的精华主题

TA的得分主题

发表于 2020-3-26 13:28 | 显示全部楼层
你找到的代码没有问题,,不存在你说的无法将内容保存出来和只显示其中某一格的问题.

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-3-26 13:39 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
larer 发表于 2020-3-26 13:28
你找到的代码没有问题,,不存在你说的无法将内容保存出来和只显示其中某一格的问题.

你好,我更新了一下附件,把那段代码加进去了,但是一个是如果不手动选择单元格范围,则默认只会转换1个单元格为图片并保存在本地,但单元格里面的内容在图片里是没有显示的。另外就是如果手动选择了单元格范围,按点击按钮,则可以将选中的单元格范围以图片形式保留到本地,但是单元格里面的内容,图片里是没有的。

TA的精华主题

TA的得分主题

发表于 2020-3-26 13:51 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Sub a()
Dim ran As Range
    Application.DisplayAlerts = False
    Set ran = [d6:g9]
    ran.Select
    ran.CopyPicture
    With ActiveSheet.ChartObjects.Add(0, 0, Selection.Width, Selection.Height).Chart
        .Paste
        .Export ActiveWorkbook.Path & "\Myjpg.jpg"
        .Parent.Delete
    End With
    Application.DisplayAlerts = True
    MsgBox ("OK")
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-3-26 14:12 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
魂断蓝桥 发表于 2020-3-26 13:51
Sub a()
Dim ran As Range
    Application.DisplayAlerts = False

你好,非常感谢,功能基本都实现了,但有一个问题,就是保存到本地的图片是一片白,单元格内的数据,底纹之类的都没有,不知是否是版本的原因还是什么?我现在用的是win10自动升级后附带成的office2019

TA的精华主题

TA的得分主题

发表于 2020-3-26 15:03 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
atxiaoli 发表于 2020-3-26 14:12
你好,非常感谢,功能基本都实现了,但有一个问题,就是保存到本地的图片是一片白,单元格内的数据,底纹 ...

在.Paste 前插入一句.Parent.Select

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-3-26 15:15 | 显示全部楼层
大萝卜白菜 发表于 2020-3-26 15:03
在.Paste 前插入一句.Parent.Select

你好,可以了,非常感谢!

另外,额外的想请教一下,保存出来的图片的文件名能不能用某单元格(比如用来填写 姓名 的 A1单元格)的值来定? 这样保存出来的图片就更方便了,不需要每次都重命名。

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-3-26 15:20 | 显示全部楼层
感谢:魂断蓝桥 与 大萝卜白菜 两位大牛的的帮助。
目前三个需求都已全部实现。现贴出完整代码,供有需要的日查阅使用。


Sub a()
Dim ran As Range
    Application.DisplayAlerts = False
    Set ran = [d6:g9] ’所需选取的单元格范围
    ran.Select
    ran.CopyPicture
    With ActiveSheet.ChartObjects.Add(0, 0, Selection.Width, Selection.Height).Chart
        .Parent.Select
        .Paste
        .Export ActiveWorkbook.Path & "\Myjpg.jpg"
        .Parent.Delete
    End With
    Application.DisplayAlerts = True
    MsgBox ("OK") '感谢 excelhome的:魂断蓝桥 与 大萝卜白菜 两位大牛的帮助!
End Sub

TA的精华主题

TA的得分主题

发表于 2020-3-26 15:29 | 显示全部楼层
atxiaoli 发表于 2020-3-26 15:15
你好,可以了,非常感谢!

另外,额外的想请教一下,保存出来的图片的文件名能不能用某单元格(比如用 ...

可以,.export activeworkbook那句自行拼接上单元格就行

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-3-26 17:02 | 显示全部楼层
大萝卜白菜 发表于 2020-3-26 15:29
可以,.export activeworkbook那句自行拼接上单元格就行

完全可以了,非常感谢花时间的细心帮助,谢谢!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-20 22:35 , Processed in 0.046725 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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