Access911.net   |   a9BBS   |   OTaA System  
  搜索文章:  
Access911欢迎您光临  
   主页      上传      繁體版       论坛     
设为首页  |  加入收藏   
  
你现在的位置:文章索引 -> 文章分类 -> OA  
 首页|  近日更新|  下载  |  文章索引  |  搜索|  术语|  承接工程|  
 
系统正在加载内容,请耐心等待...
 
 查询
 窗体
 报表
 
 
 VBA
 函数
 ADO/DAO/ADO.NET
 API
 ADP
 安全
 发布
 OA
 ASP/ASP.NET
 其他语言
 控件
 DELPHI
 C#/.Net
 本站
 其他
 小例程
 常用软件
 参考文档
 业主作品
 网友大作
 
 
友情链接
 access911.net
 
访问人次
 1701848
 
站长 E-Mail
 net911@sina.com
 access911@gmail.com
 
RSS 订阅

显示附加信息 >>>

如何在EXCEL中截图,并将图片保存为GIF或者JPG格式

作者:cg1  摘自:access911.net  :cg1  更新日期:2012-6-26  浏览人次:

 

问题:

我需要将整个SHEET截图,并保存为GIF或者JPG,改如何编程?

 


回答:


操作过程如下:
图片如下:
按此在新窗口浏览图片

源代码如下:
'将Excel中指定的Sheet中已使用的单元格截图,并保存为一个GIF图片。
Function createGIF(ByRef shSource As Excel.Worksheet, ByVal gifPath As String)

    Dim c As Chart
    Dim sh As Excel.Worksheet
    shSource.Select
    shSource.UsedRange.Select
    Application.ScreenUpdating = True
    '将可选区域截图,并保存到内存中剪贴板中。
    Selection.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
    'sheet2 是一个临时sheet,也可以直接在当前workbook中新建一个,使用后删除。
    'Set sh = ActiveWorkbook.Sheets("sheet2")
    '或者用以下代码新建一个临时sheet

    Set sh = ActiveWorkbook.Sheets.Add
    sh.Name = "access911.net"
    Dim s As Shape
    Dim p As Picture
    '将剪贴板中的图片粘贴到picture对象中
    Set p = sh.Pictures.Paste
    
    '因为chart可以导出图像,所以新建一个临时图表控件
    Set s = sh.Shapes.AddChart
    '设置图表控件的宽高于图片相等,否则图片可能变形或者有空白区域
    s.Width = p.Width
    s.Height = p.Height
    '粘贴图片到图表中
    s.Chart.Paste
    Debug.Print s.Chart.Shapes.Count
    If CLng(Application.Version) = 14 Then
        'Excel 2010 用这部分
        s.Chart.Shapes(1).Width = s.Width
        s.Chart.Shapes(1).Height = s.Height
    ElseIf CLng(Application.Version) = 12 Then
        'Excel 2007 用这部分
        s.Chart.Shapes(0).Width = s.Width
        s.Chart.Shapes(0).Height = s.Height
    End If
    
    'p.Width = s.Width
    'p.Height = s.Height
    
    '导出并保存为图片
    s.Chart.Export gifPath
    '删除临时对象,为了避免EXCEL的提示,设置显示提示为否
    Application.DisplayAlerts = False
    s.Delete
    p.Delete
    '删除 access911.net 临时 sheet
    sh.Delete
    '删除完毕后设置提示为是
    Application.DisplayAlerts = True
End Function

'测试,将当前工作簿的sheet3截图,并保存为gif格式
Function RunTest()
    Dim sh As Excel.Worksheet
    Set sh = ActiveWorkbook.Sheets("sheet3")
    createGIF sh, ActiveWorkbook.Path & "\access911.net.gif"
End Function


 


本站文章旨在为该问题提供解决思路及关键性代码,并不能完成应该由网友自己完成的所有工作,请网友在仔细看文章并理解思路的基础上举一反三、灵活运用。

access911.net 原创文章,作者本人对文章保留一切权利。
如需转载必须征得作者同意并注明本站链接

 

 
相关文章
     没有手动相关文章
     Excel当有多列合并单元格时如何只选中其中一列?
     如何在导出表到EXCEL时让用户随意选择字段?
     如何将整个 MDB 中所有的表全部导出到一个 XLS 中去?
     一个将数据导出到EXCEL的存储过程
     如何任意记录上进行编辑,然后保存成一条新的记录,同时原记录没有发生改变
     新手来看:傻瓜问题,如何使窗体在保存数据前提示?
     新手来看:excel中怎么编程获取单元格字符颜色、背景、批注?
     如何将嵌入ole字段的文件保存为硬盘上的某个文件?
     新手来看:我是否可以将Excel数据导入?
     新手来看:如何将数据表导出备份到excel表格
 
评论
     查看或发表更多的评论,请单击这里。
 
 
 
 
 
   
  Access911.net   |   a9BBS   |   OTaA System   |
建站日期:2000年4月2日  |  设计施工:陈格 ( access911 & cg1 )
 Copyright © 2000 - 2003 COMET, 陈格 保留所有权利