精华内容
下载资源
问答
  • VBA导出Excel图片

    千次阅读 2014-11-13 22:11:36
    Excel文档里面的图片都是Shape对象,遍历ActiveSheet的Shapes集合;将对应的Shape对象,设置到临时变量中;在当前的Sheet里面添加ChartObject对象,并用前面取到的Shape的宽和高设置ChartObject对象的区域大小;调用...
    

    原理:

    1. Excel文档里面的图片都是Shape对象,遍历ActiveSheet的Shapes集合;
    2. 将对应的Shape对象,设置到临时变量中;
    3. 在当前的Sheet里面添加ChartObject对象,并用前面取到的Shape的宽和高设置ChartObject对象的区域大小;
    4. 调用Shape对象的Copy方法,将其拷贝到剪切板;
    5. 激活前面创建的ChartObject对象,使用其对应的Activate方法,如果不做这步会提示错误;
    6. 将前面拷贝的图片,黏贴到ChartObject对象的Chart属性当中;意味着在插入的ChartObject对象里面贴了一幅图片;
    7. 再调用ChartObject对象的Chart属性中的Export方法,将图片导出到对应的目录,并命名。

    例子代码如下:

    Dim i As Long
        Dim picRow As Long
        Dim sku As String
        Dim s As Shape
        Dim c As ChartObject
        For i = 1 To ActiveSheet.Shapes.Count
            Set s = ActiveSheet.Shapes(i)
            picRow = s.TopLeftCell.Row
            sku = ActiveSheet.Cells(picRow, 12)
            If sku <> "" Then
                s.Copy
                Set c = ActiveSheet.ChartObjects.Add(0, 0, s.Width, s.Height)
                c.Activate
                c.Chart.Paste
                c.Chart.Export "D:\jibbitz\" & sku & ".jpg"
                c.Delete
            End If
        Next i


    这里判断图片对应行的第12列是否有值,如果有责将其作为图片的名字,导出图片。

    
    展开全文
  • VBA导出Excel里的图表为JPG文件

    千次阅读 2015-05-26 16:01:06
    Sub ExportChart() Dim myChart As Chart Dim myFileName As String Set myChart = Sheet1.ChartObjects(1).Chart myFileName = "myChart.jpg" On Error Resume Next Kill ThisWorkbook.Pat
    Sub ExportChart()
        Dim myChart As Chart
        Dim myFileName As String
        Set myChart = Sheet1.ChartObjects(1).Chart
        myFileName = "myChart.jpg"
        On Error Resume Next
        Kill ThisWorkbook.Path & "/" & myFileName
        myChart.Export Filename:=ThisWorkbook.Path & "/" & myFileName, Filtername:="JPG"
        MsgBox "OK"
        Set myChart = Nothing
    End Sub
    



    转自 http://blog.csdn.net/laoyebin/article/details/5741671

    展开全文
  • 如同vba 操作Excel一样; Excel环境:目标电脑上有安装Excel 2003及其以上, windows环境:win7及其以上; 浏览器环境:ie8及其以上; 其它:如属性vb(vba)、c#对office开发的更容易懂。 一下就 js操作Excelvba...

    js操作操作Excel的方法,
    如同vba 操作Excel一样;
    Excel环境:目标电脑上有安装Excel 2003及其以上,
    windows环境:win7及其以上;
    浏览器环境:ie8及其以上;
    其它:如属性vb(vba)、c#对office开发的更容易懂。
    一下就 js操作Excel 和 vba操作Excel形成对比
    如果导出的数据量很大很大的,我就没有测试了。

     <!DOCTYPE html>
    
    <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta charset="utf-8" />
        <title></title>
        <script>
            //模拟的json数据,二维结构
            var rjson = "";
            rjson = [
                ["序号", "用户编码", "资产名称", "型号", "资产类别名称", "使用部门", "使用人", "存放地点", "使用状态"],
                [1, "020150126", "电脑", "联想扬天t4900v", "台式机", "销售部", "张三", "2003室", "在用"],
                [2, "01103414", "办公椅", "黑皮", "椅凳类", "销售部", "张三", "2003室", "在用"],
                [3, "01104760", "地柜", "白色三抽屉", "文件柜", "销售部", "张三", "2003室", "在用"],
                [4, "2017000058", "笔记本电脑", "e31-8023", "便携式计算机", "销售部", "张三", "2003室", "在用"],
                [5, "2017000433", "书柜", "", "文件柜", "销售部", "张三", "2003室", "在用"],
                [6, "2017000406", "办公桌", "", "台、桌类", "销售部", "张三", "2003室", "在用"]
            ]
    
    
            var sh = eBook.ActiveSheet;//取活动工作表
    
            var row1 = rjson.length;//json数据的长度(行)
            var col1 = rjson[0].length;//json数据的子数据的长度(列)
    
            //创建ExcelApplication对象
            var excelApp = new ActiveXObject("Excel.Application");
            var eBook = excelApp.Workbooks.Add();//新建工作簿
            var rng = sh.Range("A1").Resize(row1, col1);//扩选上述填充的区域
            excelApp.Visible = true;//显示
           
            //Excel中的长度是从1开始的,所以i和j需要等于1 ,小于等于数组的长度
            for (var i = 1; i <= rjson.length; i++) {//循环(行)
                var rlist = rjson[i - 1];//json数据子数据
                for (var j = 1; j <= rlist.length; j++) {//循环(列)
                    sh.Cells(i, j) = rlist[j - 1];//单元格赋值
                }
            }
            ///js语法
            
            //设置相关样式
            sh.Cells.RowHeight = 23;//设置所有行的高度
            rng.Borders.LineStyle = 1;//设置填充区域的边框样式 为1
            rng.HorizontalAlignment = -4108;//设置填充区域的水平居中
            rng.VerticalAlignment = -4108;//设置填充区域的垂直居中
            sh.Columns.AutoFit();//设置所有列自动列宽(自适应内容)
            sh.Range("A1").Offset(1, 0).Select();//A1单元格下移一个单元格,并选择
            excelApp.ActiveWindow.FreezePanes = true;//冻结窗口(实现固定表头)
    
            sh.Range("A1").Resize(1, col1).Interior.ColorIndex = 41; //A1单元格横向扩选,并设置底纹颜色(设置表头底纹颜色)
            sh.Range("A1").Resize(1, col1).Font.ColorIndex = 2; //A1单元格横向扩选,并设置字体颜色(设置表头字体颜色)
    
            
        </script>
      
    </head>
    <body>
    
    </body>
    </html>
    

    其中关于Excel部分的操作,和vba语法基本相似,除了声明的部分
    以下是vba操作Excel的代码

         	'vba语法参考
            Sub ToExcel()
            Dim excelApp As Object
            Set excelApp = CreateObject("Excel.Application") '创建Excel对象 适用不同版本的Excel 敲代码无提示
         	Set excelApp = New Application'创建Excel对象 适用指定版本的Excel 有敲代码提示
         	
            Dim eBook As Object
            Dim Rng As Object
            Dim sh As Worksheet
            Dim row1 As Integer
            Dim col1 As Integer
        
            row1 = 7
            col1 = 9
        
            Set eBook = excelApp.Workbooks.Add() '新建工作簿
            Set sh = eBook.ActiveSheet   '取活动工作表
            Set Rng = sh.Range("A1").Resize(row1, col1) '扩选上述填充的区域
        
            excelApp.Visible = True '显示Excel
        
            '[vba语法]设置相关样式
            sh.Cells.RowHeight = 23 '设置所有行的高度
            Rng.Borders.LineStyle = 1 '设置填充区域的边框样式 为1
            Rng.HorizontalAlignment = -4108 '设置填充区域的水平居中
            Rng.VerticalAlignment = -4108 '设置填充区域的垂直居中
            sh.Columns.AutoFit '设置所有列自动列宽(自适应内容)
            sh.Range("A1").Offset(1, 0).Select 'A1单元格下移一个单元格,并选择
            excelApp.ActiveWindow.FreezePanes = True '冻结窗口(实现固定表头)
    
            sh.Range("A1").Resize(1, col1).Interior.ColorIndex = 41 'A1单元格横向扩选,并设置底纹颜色值(设置表头底纹颜色:蓝色)
            sh.Range("A1").Resize(1, col1).Font.ColorIndex = 2 'A1单元格横向扩选,并设置字体颜色值(设置表头字体颜色:白色)
            End Sub
    

    上述代码运行效果(如下图):
    固定了首行,设置了底纹、行高、列宽、居中等样式
    上述代码运行效果

    展开全文
  • EXCEL VBA 导出高清图片方法

    千次阅读 2020-02-17 09:59:50
    EXCEL VBA 导出高清图片方法 将EXCEL表格内容另存为图片的方法有很多种,简单的比如“复制为图片格式并另存”,“打印成XPS”等等,本文着重的是利用VBA实现的方法。 该方法适合用于中大型图文表格输出为图片格式...

    EXCEL VBA 导出高清图片方法

    将EXCEL表格内容另存为图片的方法有很多种,简单的比如“复制为图片格式并另存”,“打印成XPS”等等,本文着重的是利用VBA实现的方法。

    该方法适合用于中大型图文表格输出为图片格式,方便传阅,分辨率比直接复制保存要高,在office2010及以上版本最为流畅。

    具体看代码:

    Sub printA4()
    Dim rng As Range  '定义截图范围变量
    
    'm = 200
    'ActiveWindow.Zoom = m   '放大视图比例至200%
    '网上很多例子喜欢用这个放大视图再截图的方法,来获取高分辨率图片,我觉得不是很好用,也影响VBA运行效率。
    
    'ActiveSheet.PageSetup.PaperSize = xlPaperA3	'网上也有人用放大纸张的方式来截取高清图片,这也不好用。
    
    Set rng = ActiveSheet.Range("Print_Area")	'设置截图范围,我这里设置的是截取“打印区域”,这个方法必须先设置好打印区域(设置打印区域其实就是间接设置了导出图片参照A4/A3的比例)。也可以自定义截图范围,如A1:G10。
    
    rng.CopyPicture xlPrinter, xlPicture	'截图范围复制为图片,用的是CopyPicture命令,参数xlPrinter表示按打印效果复制, 参数xlPicture表示截取为图片格式,包括PNG\TIF等
    
    
        With Sheet6.ChartObjects.Add(0, 0, rng.Width * 2, rng.Height * 2).Chart 	'用with简化命令行。在sheet6中新建一个绘图框来保存复制的图片。(放在哪个sheet中没有要求)
            .Parent.Select	'选中新建的绘图框,这是office2016版本新增的要求,没有这句会导致导出的图片是一片空白。
            .Paste  '粘贴复制后的图片
            SaveName = Application.GetSaveAsFilename(InitialFileName:=Year(Date) & Month(Date) & Day(Date) & "数据表A4", filefilter:="图片文件(*.png),*.png")	'弹出保存文件框,以当前日期设置默认文件名(也可以省略这个),不能直接用date函数,否则文件名中可能出现符号“/”导致无法保存。
            If SaveName <> "False" Then .Export SaveName, "PNG"	'如果文件名不为空则导出png格式图片至指定位置
            '.Export "D:\output.png", "png"	这是另一种保存语句
            .Parent.Delete  '删除该临时绘图框
        End With
        
    'm = 50
    'ActiveWindow.Zoom = m	使用放大视图的方法,在结束时要还原
    
    
    End Sub

     

    展开全文
  • Excel VBA导出操作

    2021-01-26 10:08:03
    VBA初学: 1、 导出VBA开发工具 学习内容: 图操 1、第一步找到 文件——选项——自定义功能区 2、找到信任中心——点击信任中心设置 3、 导出完成标题栏就会出现开发工具选项 学习产出: 1、 通过按钮实现表格简单...
  • 导出Excel VBA

    2008-12-30 16:03:00
    用Perl程序导出Excel VBA. my $isAppLoaded = 0; # Export Excel VBA modulessub ExportExcelVBA{ my ($excelFile,$destFolder)= @_; my $excelApp = ""; # Get the excel application GetApp(/$excel
  • 钉钉是个非常不错的工具,在我们日常使用中经常要上传一些图片,有的是为了打卡,有的...如图所示:钉钉中下载的示例数据 今天我就结合Excel导出的数据,结合VBA,将钉钉中导出的数据中的图片全部下载到本地。具体...
  • Excel中用VBA导出指定扩展名对应图标
  • Sheet1.Shapes("PIC").CopyPicture ‘对图形命名为PIC,也可以用序号调用Shapes(1) With Sheet1.ChartObjects.Add(0, 0, Sheet1.Shapes("PIC").Width, Sheet1.Shapes("PIC").Height).Chart .Paste ...
  • 一位粉丝朋友问了一个问题:如何将工作表的图片批量导出,并重命名为某...VBA实现在VBA代码窗口中输入如下代码:Sub Rename() On Error Resume Next MkDir ThisWorkbook.Path & "图片" For Each pic In Shapes ...
  • 我使用VBA的原因是因为某些日期列将包含文本,例如TA for Tardy,如果TA存在于该范围中的一个或多个单元格中,则需要将总数加0.5 .我只能填充第一行,而不是它下面的行 . 我猜这是因为我没有正确设置范围 . 这是我...
  • Sub csv() Dim Fs, myFile As Object Dim myfileline As String 'txtfile的行数据 ...") MsgBox "已保存工作表内容到注册表:HKEY_CURRENT_USER\Software\VB and VBA Program Settings\MyApp201912\MySection" End Sub
  • 应用场景1、下载或收发的工作表中存在图片,需要导出备份2、数据分析的数据图表,需要批量的导出图片附:视频知识要点1、Dir(path, vbDirectory)检查某些文件或目录是否存在,返回目录或文件夹名称2、Kill (path &...
  • 这几天结尾一个项目,项目最后客户要导入数据,一个...自动导出excel的图片到外部的一个文件夹,然后上传到服务器。 Function clearChar(no As String) no = Replace(no, Chr(10), "") no = Replace(no, Chr(13), "")
  • office应用程序是可以相互访问的,比如可以把excel的数据导出到word中 step1: 首先要引用word工程对象,在excelvba中依次点击 工具——》引用——》...vbaexcel导出表格数据和图表到新word文档" title="exce
  • Sub exportJosn() Dim s As String  Dim fullName As String  Dim Data1 As String  Dim rng As Range  Dim xLen As Integer  Dim yLen As Integer  Dim r1 As Integer ... Dim c1 As Int
  • Excel VBA数据导出

    千次阅读 2017-08-14 18:12:09
    基于此需求,学习了ExcelVBA导出数据到文件中。 开启VBA Excel中的开发工具默认都没有打开,此处需要百度一下如何打开对应版本的Excel。(注:高版本的开发工具需要专业版或商业版才能使用,最好不要使用过高...
  • 2、本文工具将针对上述的评审文档,导出所有批注,且将批注生成一个新的sheet页,该sheet页跟评审文档在同一个文档中,如下格式: 3、生成如上的结果,只需要如下代码即可:  '打开Excel文件,找寻工作表的名字...
  • 日常工作中,我们可能会遇到需要批量导出excel表中的图片的情况,按照网友的做法,批量导出excel中的图片主要有几种方法: 解压缩方法:可以通过将excel文件转成rar压缩文件,解压后将图片复制出来; 转htm方法:...
  • VBA EXCEL导出问题

    2012-07-20 14:47:01
    我现在用用VBA导出了一个EXCEL(支持下拉的)用的Microsoft.EXCEL.Applicaion 我所有的权限什么的都配置了 到测试环境是可以导出并且支持下拉,本地也可以 但是就是到正式环境上就说我的EXCEL [color=#FF0000]...
  • 工作所用到的TCL/TK及VBA Excel导出脚本,工作所需,供个人练习所用,附件也加密,非下载用的~
  • 一起来学office,提高办公技能问题情境一位粉丝朋友问了一个问题:如何将工作表的图片批量导出,...VBA实现在VBA代码窗口中输入如下代码:Sub Rename() Application.ScreenUpdating = False On Error Resume Next ...
  • 520因爱而购,为爱放价特推超级会员限时疯狂抢购点击了解支持微信公众号+小程序+APP+PC网站多平台学习文章转载(爱上Excel合伙人) 实际工作中,遇到如图所示的问题,需要把从系统导出的物资出库表278个txt文件合并在...
  • 准备工作:下载压缩包解压–获得Classes下的所有文件https://github.com/PHPOffice/PHPExcel下面贴上代码,创建在index.php,引入需要的文件(注意路径自己改好...@param string $filename 导出Excel表格数据表的文...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 570
精华内容 228
关键字:

vba导出excel