`
jacky2007
  • 浏览: 169545 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Excel VBA创建动态图表

阅读更多

项目生成的Excel格式如下


每一部分要对应一个图表,行数与列数都是不固定的

数据用jxl生成,但jxl不能生成图表,有人说apache的poi HSSF可以,但没找到相关的demo.

jxell(http://www.jxcell.net .)好像可以,但收费

还有一种方法就是生成图片文件,然后插入到excel中,但我觉得太麻烦了

 

最后用vba编写了个宏来创建图表,缺点就是用户需要启用宏才能看到图

这里贴出代码以防下次忘记

'创建图表
Sub createChart()
    '对象的个数,即图中系列的数目
    'object_length = Sheets("chart").A1
    object_length = Worksheets("chart").Cells(1, 1).Value
    '共有多少天的数据
    date_length = Worksheets("chart").Cells(1, 2).Value
    '有多少个kpi,即有多少个图
    kpi_length = Worksheets("chart").Cells(1, 3).Value
    
    '数据源开始的行号
    tmp_int = 3
    For i = 1 To kpi_length
        Charts.Add
        ActiveChart.ChartType = xlLineMarkers
       
        ActiveChart.Name = "chart" & i
        
       '循环增加图
        For j = 1 To object_length
            
            
            ActiveChart.SeriesCollection.NewSeries
           
            
            v = (tmp_int + date_length - 1)
            
            ActiveChart.SeriesCollection(j).XValues = "=data!R" & tmp_int & "C1:R" & v & "C1"
            
            ActiveChart.SeriesCollection(j).Values = "=data!R" & tmp_int & "C" & (j + 1) & ":R" & v & "C" & (j + 1)
            
            ActiveChart.SeriesCollection(j).Name = "=data!R" & (tmp_int - 1) & "C" & (j + 1)
            
            ActiveChart.Location Where:=xlLocationAsObject, Name:="chart"
        
             With ActiveChart
             .HasTitle = True
             .ChartTitle.Characters.Text = Worksheets("data").Cells(tmp_int - 2, 2).Value
             .Axes(xlCategory, xlPrimary).HasTitle = False
             .Axes(xlValue, xlPrimary).HasTitle = False
    
            End With
        
        Next j     
       tmp_int = tmp_int + date_length + 4

    '设置图表的位置
   Set oChtObj = Worksheets("chart").ChartObjects(i)
   With oChtObj
   .Left = 0
   .Width = 600
   .Height = 300
   .Top = (i - 1) * 320

    End With
        
        
        
    Next i
End Sub

 

附近件kpi_3.rar为源excel可以下载解压来看到运行结果.

 

  • 大小: 38.1 KB
分享到:
评论
1 楼 18335864773 2017-12-01  
用pageoffice生成excel 吧.pageoffice 已经把vba接口都封装好了,只要调用简单的一两句代码就可以实现

相关推荐

    ExcelVBA实例教程060:使用VBA自动生成图表.pdf

    Excel VBA 自动生成图表 在实际工作中,我们常用图表来表现数据间的某种相对关系,通常采用手工插入的方式,而使用 VBA 代码可以在工作表中自动生成图表。本教程将指导您使用 VBA 代码自动生成图表的步骤。 一、...

    Excel VBA 经典代码应用大全

    6. **用户界面设计**:使用VBA创建自定义的用户界面,如Form或UserForm,添加控件(Button、Label、TextBox等),提高用户友好性。 7. **外部数据访问**:使用VBA连接到数据库,导入或导出数据,实现与SQL Server、...

    EXCELVBA贝塞尔曲线及插值_贝塞尔平滑_EXCELVBA贝塞尔曲线及插值_excelvba插值_

    在"EXCELVBA贝塞尔曲线及插值.pdf"文件中,可能详细介绍了如何在VBA环境中实现这些算法,并提供了示例代码。通过阅读和理解这份文档,你可以掌握如何在Excel VBA中绘制出符合需求的贝塞尔曲线,并进行数据插值。 ...

    Excel VBA参考手册CHM

    VBA是Microsoft Office套件中内置的一种编程语言,允许用户自定义Excel的功能,自动化重复任务,创建复杂的宏和自定义工具。 在**Excel VBA手册**中,你将找到以下核心知识点: 1. **VBA基础**:了解VBA的基本语法...

    《ExcelVBA实战技巧精粹》视频教程_ExcelHome

    9. **图表和图形**:了解如何通过VBA创建、修改和控制Excel图表,实现动态图表更新。 10. **文件操作**:学习读写外部文件,如CSV、TXT或XML文件,以及与其他应用程序(如Word、Access)的数据交换。 11. **自动化...

    EXCEL VBA 范例应用大全1001例

    8. **图表处理**:利用VBA创建、修改和格式化图表,实现动态图表更新。 9. **外部数据访问**:通过VBA连接数据库,导入或导出数据,实现与外部系统的数据交互。 10. **用户窗体设计**:创建自定义用户界面,提供更...

    创建部门考核雷达图.xlsx源码EXCEL VBA宏编程xlsx实例代码下载

    创建部门考核雷达图.xlsx源码EXCEL VBA宏编程xlsx实例代码下载创建部门考核雷达图.xlsx源码EXCEL VBA宏编程xlsx实例代码下载创建部门考核雷达图.xlsx源码EXCEL VBA宏编程xlsx实例代码下载创建部门考核雷达图.xlsx...

    Excel VBA教程完全版

    Excel VBA(Visual Basic for Applications)是Microsoft Excel中的编程环境,允许用户自定义工作簿、工作表、图表和各种对象的行为,实现自动化处理和复杂的任务管理。本教程完全版是针对那些希望提升Excel使用效率...

    打开文档后自动创建分析图表.xlsx源码EXCEL VBA宏编程xlsx实例代码下载

    打开文档后自动创建分析图表.xlsx源码EXCEL VBA宏编程xlsx实例代码下载打开文档后自动创建分析图表.xlsx源码EXCEL VBA宏编程xlsx实例代码下载打开文档后自动创建分析图表.xlsx源码EXCEL VBA宏编程xlsx实例代码下载...

    《EXCEL VBA 范例应用大全1001例》光盘资源

    6. **图表与图形**:利用VBA创建、修改和控制图表,实现动态图表更新,以及自定义图形元素。 7. **用户界面设计**:创建自定义对话框、用户窗体,提供更加友好和定制化的用户交互界面。 8. **错误处理与调试**:...

    Excel VBA对象参考手册chm

    Excel VBA(Visual Basic for Applications)是Excel内置的一种编程语言,允许用户自定义工作簿、工作表、图表等对象的行为,实现自动化处理和复杂的数据分析。本参考手册旨在深入解析Excel VBA的对象、属性和方法,...

    excel VBA帮助文件.rar

    9. **数据操作**:VBA可以直接与Excel的数据进行交互,包括读取、写入单元格、处理公式、操作图表等。此外,还可以通过VBA连接到外部数据源,如数据库,进行数据导入导出。 10. **调试与测试**:VBA提供了强大的...

    Excel VBA 入门与典型实例_随书光盘 模板

    5. **典型实例**:资源中的模板很可能包含了一系列实例,如自动填充数据、数据过滤、图表动态更新、邮件发送、数据导入导出等,这些都是Excel VBA的常见应用场景。通过实践这些实例,你能掌握VBA的实际应用技巧。 6...

    Excel VBA程序开发自学宝典(第3版)案例文件.rar

    标签中的"ExcelVBA程序开发自学"、"第3版"和"光盘"、"VBA"分别指出了本书的核心内容、版本信息以及教学辅助形式。 Excel VBA(Visual Basic for Applications)是Microsoft Office套件中内置的一种编程语言,它允许...

    VBA由图表获取数据源

    在探讨“VBA由图表获取数据源”这一主题时,我们深入分析VBA(Visual Basic for Applications)在Microsoft Office应用程序中的强大功能,特别是在Excel中如何利用VBA代码从图表中提取数据源信息。这一能力对于自动...

    来吧!带你玩转Excel VBA随书光盘

    例如,使用VBA你可以编写宏来自动填充数据、执行复杂的计算、创建图表、甚至是与其他Office应用程序进行交互。 VBA的基础语法包括变量声明、数据类型(如Integer、Double、String)、控制结构(如If...Then...Else...

    Excelvba.rar_Excel VBA_excelvba_vba excel

    标题中的“Excelvba.rar”是一个压缩包文件,其中包含了关于Excel VBA(Visual Basic for Applications)的学习资源。VBA是Microsoft Office套件中的一种编程语言,允许用户自定义Excel的功能,创建宏,以及自动化...

    ExCel_VBA.rar_Excel VBA_excel报表

    3. 动态图表:VBA能帮助创建动态图表,这些图表会随着底层数据的变化而实时更新,提供直观的数据可视化。 4. 用户界面定制:使用VBA,你可以设计用户友好的交互界面,比如下拉菜单、按钮和对话框,使得非编程人员也...

    Excel VBA 程序开发自学宝典 全套实例 案例

    8. **图表制作与修改**:通过VBA,你可以动态创建和修改图表,实现动态数据可视化。 9. **宏安全设置**:了解如何设置和管理宏的安全性,防止恶意代码的执行,同时确保自己的宏能在安全模式下运行。 总之,"Excel ...

Global site tag (gtag.js) - Google Analytics