`
jacky2007
  • 浏览: 167333 次
  • 性别: 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

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

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

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

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

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

    EXCEL2007图表完全剖析》.pdf

    使用数据透视图汇总数百万行数据,在不使用图表的情况下以图形方式显示数据,使用SmartArt图形绘制流程图和关系图,使用VBA创建图表,将数据绘制到地图中,将图表导出到网页或PowerPoint中,找出图表背后的谎言等。

    Excel_VBA_语法与应用辞典

    《Excel VBA语法与应用辞典》以辞典的形式对Microsoft Excel 2007 VBA进行了详细介绍,包括Excel VBA语法详解和高效办公应用的相关知识,通过实例剖析309个VBA语法知识,解析216个语法代码错误提示。每个实例的关键...

    Excel2007图表完全剖析 6/8

    使用数据透视图汇总数百万行数据,在不使用图表的情况下以图形方式显示数据,使用SmartArt图形绘制流程图和关系图,使用VBA创建图表,将数据绘制到地图中,将图表导出到网页或PowerPoint中,找出图表背后的谎言等。...

    Excel VBA 高效办公从入门到精通 何非 源代码

    Excel VBA 高效办公从入门到精通 何非 源...9 利用Chart对象创建图表 10 利用PivotTable对象创建数据透视表 11 文件操作 12 用户窗体 13 自定义打印 14 编程扩展Excel界面 15 控制其他Office应用 16 数据管理

    Excel vba 学习编程 应用大全含示例文件.rar

    全书分为7篇共49章,内容包括:Excel的基本功能、使用公式和函数、创建图表和图形、Excel数据分析、Excel的高级功能、使用Excel进行协同、Excel自动化。附录中还提供了Excel快捷键、工作表函数、VBA函数、规范与限制...

    最新Excel VBA活用范例大辞典 光盘

     第11章~第14章主要介绍了如何利用ExcelVBA来操作数据库(包括Excel工作簿、Access数据库、SQLServer数据库和文本文件),尤其是将ExcelVBA与ADO和SQL结合起来,充分发挥利用数据库保存数据和利用Excel计算分析...

    Excel 2007与VBA编程从入门到精通 7/10

    Excel 2007与VBA编程从入门到精通 7/10 完整清晰版 PDF ,有目录。共 200MB,分为 10 个... 第13章 使用VBA操作图表  第14章 创建类、记录和类集 第五篇 应用篇  第16章 应用实例——成绩录入系统需求分析 

    Excel VBA实用技巧大全 附书源码

    01058获取Excel图表工具栏信息 01059获取Excel常用工具栏信息 01060获取Excel格式工具栏信息 01061获取Excel数据透视表工具栏信息 01062获取Excel的Web工具栏信息 01063获取Excel审阅工具栏信息 01064获取Excel窗体...

    Excel-VBA宏编程实例源代码-图表的处理-打开文档后自动创建分析图表.zip

    Excel-VBA宏编程实例源代码-图表的处理-打开文档后自动创建分析图表.zip

    各种EXCEL~VBA命令大全

    资源描述: 本资源是一个全面的Excel VBA命令大全,旨在帮助用户提高Excel宏和VBA...5. 图表和图形:提供关于如何使用VBA创建和修改图表、图形的方法,包括添加、删除、格式化等操作。 6. 用户界面设计:。。。。。。。

    Excel-VBA宏编程实例源代码-快速创建多个图表.zip

    Excel-VBA宏编程实例源代码-快速创建多个图表.zip

    Excel 2007与VBA编程从入门到精通 6/10

    Excel 2007与VBA编程从入门到精通 6/10 完整清晰版 PDF ,有目录。共 200MB,分为 10 个... 第13章 使用VBA操作图表  第14章 创建类、记录和类集 第五篇 应用篇  第16章 应用实例——成绩录入系统需求分析 

    Excel 2007与VBA编程从入门到精通 9/10

    Excel 2007与VBA编程从入门到精通 9/10 完整清晰版 PDF ,有目录。共 200MB,分为 10 个... 第13章 使用VBA操作图表  第14章 创建类、记录和类集 第五篇 应用篇  第16章 应用实例——成绩录入系统需求分析 

    Excel2007图表完全剖析 2/8

    使用数据透视图汇总数百万行数据,在不使用图表的情况下以图形方式显示数据,使用SmartArt图形绘制流程图和关系图,使用VBA创建图表,将数据绘制到地图中,将图表导出到网页或PowerPoint中,找出图表背后的谎言等。...

    Excel-VBA宏编程实例源代码-图表的处理-创建各分店的动态折线图.zip

    Excel-VBA宏编程实例源代码-图表的处理-创建各分店的动态折线图.zip

Global site tag (gtag.js) - Google Analytics