记录成长
分享快乐

Excel~代码实现数据区域截图并保存

Excel 在“插入选项卡”下有个屏幕截图的功能,使用该功能我们可以很方便地对打开的窗口进行快速截图并自动插入到 Excel 工作簿中,但是使用该功能却不能截取 Excel 工作簿中的数据用于保存,很不方便。然而我们在实际使用 Excel 的过程中有时需要记录下每次修改工作簿的内容以备后期查阅,数据截图将会是一个非常快捷有效的方式,以下代码将会帮助你完成此类需求。

Option Explicit

Public numBeginRows, numBeginColumns, numEndRows, numEndColumns As Integer

Function UsedRangeParameter()
    
    numBeginRows = ActiveSheet.UsedRange.Cells(1, 1).Row          '获取当前已用表格区域的初始行位置
    numBeginColumns = ActiveSheet.UsedRange.Cells(1, 1).Column          '获取当前已用表格区域的初始列位置
    numEndRows = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row - 1          '获取当前已用表格区域的末尾行位置
    numEndColumns = ActiveSheet.UsedRange.Columns.Count + ActiveSheet.UsedRange.Column - 1          '获取当前已用表格区域的末尾列位置

End Function

Sub qggScreenshot()

    On Error Resume Next
    
    Dim rngScreenshot As Range, iShape As Shape, picName As String, myFolder As String, selectFolder As String, imgFileFilter As String
       
    Call UsedRangeParameter
    
    Set rngScreenshot = Range(Cells(numBeginRows, numBeginColumns), Cells(numEndRows, numEndColumns))
    
    picName = "qgg-" & Replace(Replace(rngScreenshot.Address, "$", ""), ":", "") & "-" & Format(Date, "yyyymmdd")
    
    'myFolder = ThisWorkbook.Path & "\Screenshot\"     '指定文件夹名称
    imgFileFilter = "JPEG 格式图片(*.jpg),*.jpg," & "PNG 格式图片(*.png),*.png," & "BMP 格式文件(*.bmp),*.bmp," & "GIF 格式图片(*.gif),*.gif,"
    selectFolder = Application.GetSaveAsFilename(InitialFileName:=picName, FileFilter:=imgFileFilter, Title:="图片另存为")

    rngScreenshot.Copy
    ActiveSheet.Pictures.Paste.Select
    Selection.ShapeRange.Name = picName
    
    '遍历 Shape 元素,找到截图图片
    For Each iShape In ActiveSheet.Shapes
    
        If iShape.Name = picName Then
        
            'If Len(Dir(myFolder, vbDirectory)) = 0 Then MkDir myFolder

            iShape.CopyPicture
            With ActiveSheet.ChartObjects.Add(0, 0, iShape.Width, iShape.Height).Chart
                .Parent.Select         '选择父对象 ChartOjbect ,确保真正的粘贴上
                .Paste
                '.Export myFolder & picName & ".jpg", "JPG"
                .Export selectFolder
                .Parent.Delete
            End With
                iShape.Delete
        End If
        
    Next iShape
    
    If selectFolder <> False Then MsgBox ("数据截图已保存到指定文件夹下!!!")

End Sub

代码中自动获取的当前已用数据区域坐标,并可自由选择保存图片格式。

蝈蝈下载面板

恭喜,此资源为免费资源,请先
注意:本站资源多为网络收集,如涉及版权问题请及时与站长联系,我们会在第一时间内与您协商解决。如非特殊说明,本站所有资源解压密码均为:blog.quietguoguo.com。

历史上的今天:

赞(1) 我要打赏
蝈蝈提醒:转载请注明出处哦>>>蝈蝈要安静 » Excel~代码实现数据区域截图并保存
分享到: 更多 (0)

评论 抢沙发

博客文章有用,赏博主一包辣条~~~

支付宝扫一扫打赏

微信扫一扫打赏

Excel~代码实现数据区域截图并保存-海报

分享本文封面