精华内容
下载资源
问答
  • 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列是否有值,如果有责将其作为图片的名字,导出图片。

    
    展开全文
  • 1.不管图片在Excel中是否被缩放过,导出的图片是按图片的原始尺寸进行保存。 2.在桌面上会自动新建一个"OutputPic"的文件夹,导出的图片将会存在那个文夹里; 3.如果文件夹中已有相同名字的文件,则后面导出的文件会...
  • Excel VBA导出操作

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

    VBA初学:

    1、 导出VBA开发工具

    学习内容:

    图操
    1、第一步找到 文件——选项——自定义功能区在这里插入图片描述

    2、找到信任中心——点击信任中心设置
    在这里插入图片描述

    3、 导出完成标题栏就会出现开发工具选项
    在这里插入图片描述

    学习产出:

    1、 通过按钮实现表格简单循环插入
    2、无操作前在这里插入图片描述

    3、 点击按钮后
    在这里插入图片描述
    4、非常简单的VBA代码
    Sub 宏5()

    ’ 宏5 宏


    Dim i As Integer
    Rows(“2:2”).Select

    For i = 1 To 50
    
    Selection.Copy
    ActiveCell.Offset(2, 0).Rows("1:1").EntireRow.Select
    Selection.Insert Shift:=xlDown
    
    Next
    

    End Sub

    展开全文
  • 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

    展开全文
  • Excel VBA数据导出

    千次阅读 2017-08-14 18:12:09
    基于此需求,学习了ExcelVBA导出数据到文件中。 开启VBA Excel中的开发工具默认都没有打开,此处需要百度一下如何打开对应版本的Excel。(注:高版本的开发工具需要专业版或商业版才能使用,最好不要使用过高...

    游戏中很多配置文件都采用Excel保存数据。但实际使用时,可能需要对Excel数据再处理成我们需要的格式。基于此需求,学习了Excel的VBA来导出数据到文件中。

    开启VBA

    Excel中的开发工具默认都没有打开,此处需要百度一下如何打开对应版本的Excel。(注:高版本的开发工具需要专业版或商业版才能使用,最好不要使用过高版本,最低office excel 2007版)

    宏设置

    Excel默认禁用所有宏,在宏安全中可以设启用所有宏

    新建模块

    打开Visual Basic面板,选中工程面板下任意选项右键-插入-模块。

    代码示例

    Option Explicit
    Sub parseAndOutputData()
        Dim result As String
        Dim file_name As String
        Dim file_path As String
        Dim info_row As Integer
        Dim sheets_count As Integer
        
        If Len(Worksheets(1).Cells(2, 1).Value) > 0 Then
            file_name = Worksheets(1).Cells(2, 1)
        End If
        If Len(Worksheets(1).Cells(2, 2).Value) > 0 Then
            file_path = Worksheets(1).Cells(2, 2)
        End If
        If Len(Worksheets(1).Cells(2, 3).Value) > 0 Then
            info_row = Worksheets(1).Cells(2, 3)
        End If
        sheets_count = Worksheets.Count
        sheets_count = 0
        While Len(Worksheets(1).Cells(2, sheets_count + 4)) > 0
                sheets_count = sheets_count + 1
        Wend
    
        If MsgBox("It will Clear File!",VbOKCancel,"提示") = vbCancel Then
            Exit Sub
        End If
    
        Open ThisWorkbook.Path & "\" & file_name & ".txt" For Output As #1
            Write #1, ""
        Close #1
        
        
        Dim i As Integer
        Dim j As Integer
        Dim k As Integer
        Dim max_row As Integer
        Dim max_col As Integer
    
        Open ThisWorkbook.Path & "\" & file_name & ".txt" For Binary As #1
        result = "return {"
        For i = 2 To sheets_count
            max_col = 0
            While Len(Worksheets(i).Cells(info_row, (max_col + 1)).Value) > 0
                max_col = max_col + 1
            Wend
    
            max_row = info_row
            While Len(Worksheets(i).Cells((max_row + 1), 1).Value) > 0
                max_row = max_row + 1
            Wend
    
            If i <> 2 Then
                result = result & "," & Chr(10)
            Else
                result = result & Chr(10)
            End If
            result = result & Chr(9) & Worksheets(1).Cells(2, (i + 2)).Value & " = {"
    
            For j = (info_row + 1) To max_row
                If j <> (info_row + 1) Then
                    result = result & "," & Chr(10) & Chr(9) & Chr(9) & "{"
                Else
                    result = result & Chr(10) & Chr(9) & Chr(9) & "{"
                End If
                For k = 1 To max_col
                    If Len(Worksheets(i).Cells(j, k).Value) > 0 Then
                        If k <> 1 Then
                            result = result & ","
                        End If
                        result = result & Chr(10) & Chr(9) & Chr(9) & Chr(9) & Worksheets(i).Cells(info_row, k) & "=" & Worksheets(i).Cells(j, k).Value
                    End If
                Next
                result = result & Chr(10) & Chr(9) & Chr(9) & "}"
    
                Put #1, , result
                result = ""
            Next
            result = result & Chr(10) & Chr(9) & "}"
        Next
        
        result = result & Chr(10) & "}"
        
        Put #1, , result    
        Close #1
        MsgBox "OutPut Success!"
    End Sub

    Worksheets(1).Cells(2, 3)代表第一个表的第2行第3列单元格   其中Worksheets(1)代表第一个表,其指多个表中排最前面的表,只与位置有关

    Worksheets.Count代表当前xls文件中表的个数

    <> 表示不等于 &  表示连接         Chr(9)表示转义字符Tab

    在条件语句中 = 表示判断是否相等

    ThisWorkbook.Path代表当前文件路径  Output 和 Binary 代表文件打开模式

    其中Output 对应用Write写入数据  其会覆盖到文件所有内容。

    Binary对应用Put写入数据  其有三个参数,第二个代表可选字节数 ,第三个代表内容

    Binary其会覆盖掉最初写入的部分,不会修改其他数据。所以采用Output清除文件内容。

    Binary一次最多读写32kb,可以不关闭文件多次顺序写入数据。

    #1代表文件号  类似文件句柄吧

    MsgBox 弹出框控件   具体使用细节可根据需求百度


    本示例代码主要是读取第一个表,获取一些配置信息,比如需要读取多少个表,从第几行开始读取。之后的逻辑主要是为了组织数据的布局

    最后在Excel中的开发者面板中点击宏,选择模块再执行。导出文件成功

    新建一个空xlsx文件,为其开启宏并添加模块。只要与该xlsx文件在同一文件夹的,其它xlsx文件就可以直接调用其模块导出数据


    中文显示问题:

    二进制文本输出后的编码格式是ANSI

    一般代码文件都采用的是UTF-8    无BOM格式

    最简单的方法:

    Notepad++可以显示ANSI的中文,但直接将其转换编码格式,其新的格式不能显示原有中文

    使用Notepad++新建文件将其编码格式修改为UTF-8    无BOM格式   在将原来的内容拷贝到新文件中即可显示原有中文

    展开全文
  • 日常工作中,我们可能会遇到需要批量导出excel表中的图片的情况,按照网友的做法,批量导出excel中的图片主要有几种方法: 解压缩方法:可以通过将excel文件转成rar压缩文件,解压后将图片复制出来; 转htm方法:...
  • Sub Demo2() Dim objChart As ChartObject Dim i As Integer For Each objChart In ActiveSheet.ChartObjects objChart.Select ActiveChart.Export Filename:=ThisWorkbook.Path & "\" & _ objChart.Chart....
  • Sheet1.Shapes("PIC").CopyPicture ‘对图形命名为PIC,也可以用序号调用Shapes(1) With Sheet1.ChartObjects.Add(0, 0, Sheet1.Shapes("PIC").Width, Sheet1.Shapes("PIC").Height).Chart .Paste ...
  • vba程序 Excel表内容转Word 每行生成一个word 并将对应内容写入word
  • EXCEL VBA 导出高清图片方法

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

    千次阅读 2018-10-24 10:53:50
    'r,c 图片所在单元格的偏移量,用来做图片的名字 Sub exportPic() r = 0 c = -2 For i = 1 To ActiveSheet.Shapes.Count ActiveSheet.Shapes(i).Select Name = Range(ActiveSheet.Shapes(i).TopLeftCell.Address)...
  • 使用VBA,20行代码 将Excel数据导出

    万次阅读 2013-08-15 21:28:38
    程序员免不了与策划或运维打交道。通常情况是有配置数据的更改。但是即便是程序员也有写错的时候。更改一个配置,使用更直观的excel,成为了单写配置工具的替代方案。这里介绍一个将Excel的数据导出生成文件的方法。
  • 本例简析通过ACCESS VBA查询语句导出所有数据库表到XLS文件。 2. 相关知识 2.1 导出数据查询代码 有四种方法,可选其中一种。其中D:\test.xls表示导入到D盘里,命名为test.xls;Sheet1是工...
  • VBAExcel导出为CSV文件

    千次阅读 2020-08-08 19:34:44
    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
  • 需要传两个参数,excel路径和pdf路径。 代码可以做成wsf文件,通过C语言或者java调用 <job id="etop"> <reference guid="{00020813-0000-0000-C000-000000000046}" comment="MSExcel 2000 tag library, ...
  • 用QT调用VBA函数实现文件导出Excel功能
  • 适用于图纸插表的制作。按给定列(该列应该但不限于页码),导出包含表头的png图片。源码。原创。
  • 一个基于ExcelVBA开发的自动生成.pdf
  • office应用程序是可以相互访问的,比如可以把excel的数据导出到word中 step1: 首先要引用word工程对象,在excelvba中依次点击 工具——》引用——》...vbaexcel导出表格数据和图表到新word文档" title="exce
  • Access 在VBA中实现数据导出Excel

    千次阅读 2014-02-26 22:55:54
    1.添加引用Microsoft Excel 11.0 Object Library。(这里用的是Microsoft Excel 2003) 2.定义获取数据集通用函数。 Public Function GetRS(ByVal strQuer
  • Sub Macro1()'' Macro1 Macro' 宏由 hgd 录制,时间: 2006-7-21'' 快捷键: Ctrl+z''Sub shangpingzu()------连接SQL数据库Set x = CreateObject("adodb.connection")Set y = CreateObject("adodb.recordset")...
  • VBA实现Excel单元格下拉框复选demo,需要结合VB代码实现,demo很详细
  • 如同vba 操作Excel一样; Excel环境:目标电脑上有安装Excel 2003及其以上, windows环境:win7及其以上; 浏览器环境:ie8及其以上; 其它:如属性vb(vba)、c#对office开发的更容易懂。 一下就 js操作Excelvba...
  • 利用VBA技术批量将邮件(.eml格式)内容抽取到EXCEL,并利用工具中的检索功能,实现关键字搜索,快速定位需要查找的邮件,提高工作效率
  • 1 To 1 '设置单元格范围 Set Rng = Worksheets(i).Range("A1:AN1000") For r = 2 To Rng.Rows.Count ' 判断Excel中下一行是否有数据 If Rng.Cells(r, 1) = "" Then Exit For End If Print #1, " (r, 1) & ">" For c ...
  • 将该文件与需要转换的Excel文件放在同一个文件夹中,打开该文件,点击开始转换,稍等片刻即可完成转换
  • 使用ExcelEasy与vba脚本结合,实现含多选框与单选框excel文件
  • Sub 导出每行为txt() Dim i, j, arr(), brr(), myRow, myCol arr = Sheet1.UsedRange '将工作表的内容放入arr数组中 myRow = UBound(arr, 1) '计算出数组的行数 myCol = UBound(arr, 2) '计算出数组的列数 For i = 1...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,808
精华内容 1,523
关键字:

vba导出excel