ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

EH搜索     
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! Excel 2016函数公式学习大典 Office知识技巧免费学 打造核心竞争力的职场宝典
300集Office 2010微视频教程 Tableau-数据可视化工具 精品推荐-800套精选PPT模板,点击获取 ExcelHome出品 - VBA代码宝免费下载
你的Excel 2010实战技巧学习锦囊 欲罢不能, 过目难忘的 Office 新界面 Excel VBA经典代码实践指南
查看: 194|回复: 9

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

[复制链接]

TA的精华主题

TA的得分主题

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

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

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

TA的精华主题

TA的得分主题

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

TA的精华主题

TA的得分主题

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

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

TA的精华主题

TA的得分主题

发表于 2020-3-26 13:51 | 显示全部楼层
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 | 显示全部楼层
魂断蓝桥 发表于 2020-3-26 13:51
Sub a()
Dim ran As Range
    Application.DisplayAlerts = False

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

TA的精华主题

TA的得分主题

发表于 2020-3-26 15:03 | 显示全部楼层
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那句自行拼接上单元格就行

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

本版积分规则

关注官方微信,每天学会一个新技能

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

GMT+8, 2020-4-9 03:51 , Processed in 0.069746 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2020 Wooffice Inc.

   

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

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

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