Excel·VBA工作表导出为图片

76 篇文章 24 订阅

《Excel转图片别再截图啦!用这4个方法,高清且无损!》,excel转为图片一般方法较为简单,那么能否使用vba将excel转为图片

选中区域导出为图片

zoom设置为2,导出图片较为清晰

Sub 选中区域导出为图片()
    Dim zoom#, rng As Range, save_name$
    zoom = 2: Set rng = Selection  '图片缩放倍数;设置截图范围为选中区域
    rng.CopyPicture xlPrinter, xlPicture  '截图范围复制为图片
    With ActiveSheet.ChartObjects.Add(0, 0, rng.Width * zoom, rng.Height * zoom).Chart  '新建一个临时图表区,用来储存图片
        .Parent.Select  '选中新建的绘图框,office2016版本新增要求,缺少会导致导出的图片是一片空白
        .Paste          '粘贴复制后的图片
        '显示标准的“另存为”对话框,获取用户文件名,InitialFilename可指定文件名,FileFilter筛选条件
        save_name = Application.GetSaveAsFilename(InitialFileName:="导出图片" & Format(Date, "yyyymmdd"), filefilter:="图片文件(*.png),*.png")
        If save_name <> "False" Then .Export save_name, "PNG"  '文件名不为空则导出png图片至指定位置,取消即为False
        .Parent.Delete  '删除该临时绘图框
    End With
End Sub

举例

选中单元格区域,运行代码导出为图片,以《Excel·VBA制作工资条》为例
在这里插入图片描述
选择导出图片的保存位置、文件名
在这里插入图片描述
保存成功的图片
在这里插入图片描述

工作簿导出为图片

Sub 工作簿导出为图片()
    '工作簿所有工作表导出为图片,工作表命名,导出到固定路径
    Dim zoom#, rng As Range, save_path$, sht As Worksheet, fso As Object
    zoom = 2    '图片缩放倍数
    Set fso = CreateObject("Scripting.FileSystemObject")
    With ActiveWorkbook
        save_path = .path + "\导出图片\"
        If Not fso.FolderExists(save_path) Then fso.CreateFolder (save_path)
        For Each sht In .Worksheets
            Set rng = sht.UsedRange
            rng.CopyPicture xlPrinter, xlPicture
            With sht.ChartObjects.Add(0, 0, rng.Width * zoom, rng.Height * zoom).Chart
                .Parent.Select
                .Paste
                .Export save_path & sht.Name & ".png", "png"  '导出到固定路径
                .Parent.Delete
            End With
        Next
    End With
End Sub

举例

《Excel·VBA制作工资条》《Excel·VBA单元格区域数据对比差异标记颜色》共4个工作表同在1个工作簿为例,导出结果
在这里插入图片描述

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
VBA是Visual Basic for Applications的缩写,是微软公司开发的一种应用程序编程语言。在Excel中,可以使用VBA编写代码来实现一些自动化操作,例如将工作导出为Word文档。 要将工作导出为Word文档,可以按照以下步骤编写VBA代码: 1. 打开Excel,按下ALT + F11打开Visual Basic for Applications编辑器。 2. 在左侧的项目窗口中,选择要编写代码的工作簿。 3. 在编辑窗口中,输入以下VBA代码: ``` Sub ExportToWord() Dim ws As Worksheet Dim wdApp As Object Dim wdDoc As Object Set ws = ThisWorkbook.Worksheets("Sheet1") '将"Sheet1"改为要导出工作名称 Set wdApp = CreateObject("Word.Application") wdApp.Visible = True '是否显示Word应用程序 Set wdDoc = wdApp.Documents.Add '创建新的Word文档 '将工作的内容复制到Word文档中 ws.UsedRange.Copy wdDoc.Range.PasteExcelTable LinkedToExcel:=False, WordFormatting:=False, RTF:=False '保存Word文档 wdDoc.SaveAs "C:\导出的文档.docx" '将“C:\导出的文档.docx”改为要保存的路径和文件名 wdDoc.Close '关闭Word文档 wdApp.Quit '关闭Word应用程序 Set wdDoc = Nothing Set wdApp = Nothing Set ws = Nothing MsgBox "导出完成!" End Sub ``` 4. 修改代码中的部分内容,例如将"Sheet1"改为要导出工作名称,将文件保存路径和文件名修改为自己需要的。 5. 按下F5运行代码,工作将会被导出为Word文档。 以上就是使用VBA工作导出为Word文档的方法,通过编写相应的代码实现自动化操作。使用VBA可以更加高效地完成一些繁琐的操作,提升工作效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薛定谔_51

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值