精华内容
下载资源
问答
  • 大家好,今日继续上一讲的内容,也是VBA代码方案的第三十五讲,继续讲使用VBA代码自动生成图表的下半部分。在上一讲中我们讲了基本的方法,今日就利用这些方法来完成我们的任务,为此,我写了下面的35行代码:Sub ...

    大家好,今日继续上一讲的内容,也是VBA代码方案的第三十五讲,继续讲使用VBA代码自动生成图表的下半部分。在上一讲中我们讲了基本的方法,今日就利用这些方法来完成我们的任务,为此,我写了下面的35行代码:

    Sub MyChartAdd()

    2 Dim myRange As Range

    3 Dim myChart As ChartObject

    4 Dim MR As Integer

    5 Sheets("Sheet1").Select

    6 MR = Range("A1048576").End(xlUp).Row

    7 Set myRange = Sheets("Sheet1").Range("A" & 1 & ":F" & MR)

    8 Set myChart = Sheets("Sheet1").ChartObjects.Add(120, 40, 400, 250)

    9 myChart.Chart.ChartType = xlColumnClustered

    10 myChart.Chart.SetSourceData Source:=myRange, PlotBy:=xlColumns

    11 myChart.Chart.ApplyDataLabels ShowValue:=True

    12 myChart.Chart.HasTitle = True

    13 myChart.Chart.ChartTitle.Text = "我的图表"

    14 With myChart.Chart.ChartTitle.Font

    15 .Size = 20

    16 .ColorIndex = 3

    17 .Name = "华文新魏"

    18 End With

    19 With myChart.Chart.ChartArea.Interior

    20 .ColorIndex = 8

    21 .PatternColorIndex = 1

    22 .Pattern = xlSolid

    23 End With

    24 With myChart.Chart.PlotArea.Interior

    25 .ColorIndex = 35

    26 .PatternColorIndex = 1

    27 .Pattern = xlSolid

    28 End With

    29 With myChart.Chart.SeriesCollection(2).DataLabels.Font

    30 .Size = 10

    31 .ColorIndex = 5

    32 End With

    33 Set myRange = Nothing

    34 Set myChart = Nothing

    35 End Sub

    代码解析:

    MyChartAdd过程在工作表中自动生成图表,图表类型为簇状柱形图。

    a) 第6行代码取得数据范围的最关键的数据.

    b) 第7行代码指定图表的数据源。

    c) 第8行代码使用Add方法创建一个新图表,

    d) 第9行代码指定新创建图表的图表类型,应用于Chart对象的ChartType属性返回或设置图表的类型,可以为XlChartType常量之一,本例中设置为xlColumnClustered即图表类型为簇状柱形图。

    e) 第10行代码指定图表的数据源和绘图方式,

    f) 第11行代码使用ApplyDataLabels方法使图表显示数据标签和数据点的值,

    g) 第12到13行代码设置新创建的图表有可见的标题并设置图表标题的文字。应用于Chart对象的HasTitle属性,如果坐标轴或图表有可见标题,则该值为True,而ChartTitle属性返回一个ChartTitle对象,代表指定图表的标题。

    h) 第14行到第18行代码设置图表标题文字的格式。

    i) 第19行到第23行代码设置图表区的颜色。

    j) 第24行到第28行代码设置绘图区的颜色。

    k) 第31行代码删除图表上第一个数据系列中的数据标签。

    l) 第29行到第32行代码设置图表上第二个数据系列中的数据标签的字体格式。

    代码窗口:

    3475b80ce30d073877a2311f526f842a.png

    数据窗口:

    0ca645ddeedcc27a729424632e6c5e85.png

    运行ChartAdd过程,在工作表中创建簇状柱形图,如图所示:

    2c8a53f4a0d0281b4123f801e6ef3037.png

    今日内容回向:

    1 对上面的35行代码是否理解呢?

    展开全文
  • 大家好,今日继续上一讲的内容,也是VBA代码方案的第三十五讲,继续讲使用VBA代码自动生成图表的下半部分。在上一讲中我们讲了基本的方法,今日就利用这些方法来完成我们的任务,为此,我写了下面的35行代码: Sub ...

    992c8f04732b066f950a2384a554b0fc.png

    大家好,今日继续上一讲的内容,也是VBA代码方案的第三十五讲,继续讲使用VBA代码自动生成图表的下半部分。在上一讲中我们讲了基本的方法,今日就利用这些方法来完成我们的任务,为此,我写了下面的35行代码:

    Sub MyChartAdd()

    2 Dim myRange As Range

    3 Dim myChart As ChartObject

    4 Dim MR As Integer

    5 Sheets("Sheet1").Select

    6 MR = Range("A1048576").End(xlUp).Row

    7 Set myRange = Sheets("Sheet1").Range("A" & 1 & ":F" & MR)

    8 Set myChart = Sheets("Sheet1").ChartObjects.Add(120, 40, 400, 250)

    9 myChart.Chart.ChartType = xlColumnClustered

    10 myChart.Chart.SetSourceData Source:=myRange, PlotBy:=xlColumns

    11 myChart.Chart.ApplyDataLabels ShowValue:=True

    12 myChart.Chart.HasTitle = True

    13 myChart.Chart.ChartTitle.Text = "我的图表"

    14 With myChart.Chart.ChartTitle.Font

    15 .Size = 20

    16 .ColorIndex = 3

    17 .Name = "华文新魏"

    18 End With

    19 With myChart.Chart.ChartArea.Interior

    20 .ColorIndex = 8

    21 .PatternColorIndex = 1

    22 .Pattern = xlSolid

    23 End With

    24 With myChart.Chart.PlotArea.Interior

    25 .ColorIndex = 35

    26 .PatternColorIndex = 1

    27 .Pattern = xlSolid

    28 End With

    29 With myChart.Chart.SeriesCollection(2).DataLabels.Font

    30 .Size = 10

    31 .ColorIndex = 5

    32 End With

    33 Set myRange = Nothing

    34 Set myChart = Nothing

    35 End Sub

    代码解析:

    MyChartAdd过程在工作表中自动生成图表,图表类型为簇状柱形图。

    a) 第6行代码取得数据范围的最关键的数据.

    b) 第7行代码指定图表的数据源。

    c) 第8行代码使用Add方法创建一个新图表,

    d) 第9行代码指定新创建图表的图表类型,应用于Chart对象的ChartType属性返回或设置图表的类型,可以为XlChartType常量之一,本例中设置为xlColumnClustered即图表类型为簇状柱形图。

    e) 第10行代码指定图表的数据源和绘图方式,

    f) 第11行代码使用ApplyDataLabels方法使图表显示数据标签和数据点的值,

    g) 第12到13行代码设置新创建的图表有可见的标题并设置图表标题的文字。应用于Chart对象的HasTitle属性,如果坐标轴或图表有可见标题,则该值为True,而ChartTitle属性返回一个ChartTitle对象,代表指定图表的标题。

    h) 第14行到第18行代码设置图表标题文字的格式。

    i) 第19行到第23行代码设置图表区的颜色。

    j) 第24行到第28行代码设置绘图区的颜色。

    k) 第31行代码删除图表上第一个数据系列中的数据标签。

    l) 第29行到第32行代码设置图表上第二个数据系列中的数据标签的字体格式。

    代码窗口:

    cd7367e8c973eead91f4d75a442bcb7f.png

    数据窗口:

    077fddaafc29bc8936b034a349fe05de.png

    运行ChartAdd过程,在工作表中创建簇状柱形图,如图所示:

    989ce44a0b5e2a564cb2c725cf7d708f.png

    今日内容回向:

    1 对上面的35行代码是否理解呢?

    这一系列文章是根据我多年的工作经验编写的,也是一直在利用的工具,非常方便好用。现在分享出来,希望能对同样在职场打拼的朋友有些许的帮助,使你的工作更加高效、流畅。朋友们有问题请随时提出来,我们一起探讨学习。对数据分析有需要的公司、组织或个人可以直接联系我,及时为你提供专业的定制技术支持。

    欢迎大家到我的自媒体平台沟通交流:公众号“NZ_9668”、社群“VBA学习交流群”、头条号“VBA专家”,百家号“VBA与GO语言”。

    工作不是一切。工作是每个人安身立命、成长发展的基础。但你要知道工作是永远也做不完的,时间会抹去很多问题。多关注自己、家人和朋友,这些才是我们生活中更为重要的东西。

    展开全文
  • 相信你肯定已经熟悉在excel中间如何生成图表,如何优化图表的能力了。但是你在普通的操作时候,只能一个一个的生成图表,不能一次生成多个。今天要和你介绍的就是一键生成多个图表,让你工作效率在次...

    cba4e35609f150d17202d15e221d63fd.png

    Excel的数据表现方式要说有哪几个的话,最熟悉的就属于我们额图表功能了。Excel的制图功能是非常强大的,你可以创建各种各样的数据图表,你也可以修改你制作完成的每一个图表的细节,对他进行修改和完善。

    相信你肯定已经熟悉在excel中间如何生成图表,如何优化图表的能力了。但是你在普通的操作时候,只能一个一个的生成图表,不能一次生成多个。今天要和你介绍的就是一键生成多个图表,让你工作效率在次提升。

    203626ef3fd71c2b80892aa5d3cb5e89.png

    那么如何使用VBA创建一个图表呢?

    在这个时候我们通常是推荐用excel自带的宏录制器来完成这个操作,通过录制得到的代码我们可以学习相关对象和属性的使用方法,所以我们一直推荐学习的时候使用录制宏这个功能。

    如下为我们通过录制宏代码修改而成的图表的代码如下:

    7ecc0f935b3ff74bb45f348d377e05b3.png

    通过以上代码我们可以轻易生成图表,可以发现代码是很简单很简洁的。

    回到我们正题,如何一键生成多个呢?或许你已经想到啦!就是把我们上面单独生产一个的功能,加上循环代码即可,就可以一次生成多个。

    我们有如下一份源数据区域,需要依据人员的姓名一次创建多个折线图图表。

    595a78ccc2605bbfc2cb455c490d6a74.png

    我们先来看看代码如何实现的动画吧!

    c49ac7545c5780b243595338f3518408.gif

    其实要实现这个效果,代码是很简单的。代码分为2部分,如下截图:

    28344d9733b72d7106d889b8d7b5b30c.png

    以上代码是说明我们要创建的工作图表类型和数据区域,包括图表的宽度和长度,大小。

    如下为利用循环将生成15个图表,其实也是非常简单的。

    bc8bd535dd3238a384e6c87c9a32191b.png

    需要说明的是,我们一次创建多个图表的的时候,我们是有规律可以寻的,就可以利用代码来完成这个重复性的工作,减少你的工作压力,加快工作效率。

    在说一个小的知识点,就是如何把我们的图表导出来,我们介绍一种VBA的方式:

    使用VBA可以自动将图表导出来,我们导出的时候,支持格式可以为jpg或者jpeg格式。

    如下为我们导出图表的通用性代码:

    7e720423da1c8e15dab367e2a81d8683.png

    我们程序执行完成以后,会单独生成一个和我们的工作表的名字一样的文件夹,将导出的图表放置在内,我们既可以看到如下所示的文件了,是不是很方面啦!

    5aab9e48a22d93389f272a7385ae7147.png

    以上就是我们今天和大家说用代码创建多个数据透视表的简单方法,如果有不明白的或者不懂的可以在下方留言,我们会一一解答的。

    8b35deaafbfcb57a88ae776adae15546.png

    我是Excel教案,关注我持续分享更多的Excel技巧!

    展开全文
  • 如何利用VBA自动生成PPT报告

    千次阅读 2019-06-23 10:06:36
    一开始时候是希望用Python(pptx)来写的,但感觉这个包兼容性不够好,生成图表不能和现有的图型一致,并且该数据模板的制作时间也很长,所以还是用回微软他家的程序好了。(实验证明,①编程都是有...

    本文是继python(多级表头)之后的另一个项目,主要是利用VBA实现自动更新PPT模板的功能。主要是常规的PPT太多了, 不想把时间浪费在Ctrl+C 和Ctrl+V 之间,唯有想想自动化的可行性了;
    一开始时候是希望用Python(pptx)来写的,但感觉这个包兼容性不够好,生成的图表不能和现有的图型一致,并且该数据模板的制作时间也很长,所以还是用回微软他家的程序好了。(实验证明,①编程都是有其共同性的,看懂python,VBA也能大概看懂的;②工具不分等级高低,合适就行。)

    首先,要感谢下周婷同学和网上的大神们,由于他们无私贡献出代码,我才能依葫芦画瓢(zhaochao)写出代码。。

    先上代码,再一行行解释代码的作用。由于本人也是初学VBA,代码比较简陋,请大神们指导一下。谢谢。

    PS:数据处理问题,我都放在excel处理了,所以这个VBA就是搬运数据的功能。。。

    Sub 第一页()
        Dim pp As PowerPoint.Application   
        Dim pReport As PowerPoint.Presentation
        Dim pchtws1 As Worksheet
        Dim wb As Workbook
        Dim sh As Worksheet
        
        Application.ScreenUpdating = False
        
        
        '选定Excel页码
        Set wb = ThisWorkbook
        Set sh = Sheets("P1") 'sh选定P1页
        
    
        '启动PPT的功能,选定已打开的PPT模板。
        Set pp = CreateObject("powerpoint.application")
        Set pReport = pp.ActivePresentation
        
        '选定图表7的数据范围。
        Set pchtws1 = pReport.Slides(1).Shapes("图表 7").Chart.ChartData.Workbook.Worksheets(1)
        '通过excel表格,赋值给ppt对应的图表
        pchtws1.Range("A1:B4").Value = sh.Range("A1:B4").Value
    
         '同上,更新图表8的内容。
        Set pchtws1 = pReport.Slides(1).Shapes("图表 8").Chart.ChartData.Workbook.Worksheets(1) ''修改范围
        pchtws1.Range("D1:E4").Value = sh.Range("D1:E4").Value
        
        
        '更新表格1数据,由于无法直接修改PPT中Table的数据,那我只能把Excel的数据直接黏贴至PPT中。
        '这里面的PasteSpecial ppPasteDefault是默认采用Excel的格式,所以请先固定好Excel的格式。
        '这里的位置由于不是cm制,所以需要转换pt = cm * 72 / 2.54
        sh.Range("A1:B4").Select
        
        Selection.Copy
        
        pReport.Slides(1).Shapes(1).Select
        pReport.Slides(1).Shapes.PasteSpecial ppPasteDefault
        
         Dim h, w, l, t
         
         'cm制
         
         h = 3
         w = 13
         l = 3.1
         t = 12.34
         
         '我每页PPT的表格位置都不同,所以不适用,只适用于固定位置模板,先保留吧。
    '    h = sh.Range("G1").Value
    '    w = sh.Range("G2").Value
    '    l = sh.Range("G3").Value
    '    t = sh.Range("G4").Value
    
        With pp.ActiveWindow.Selection.ShapeRange
        
        'pt制,换算单位:pt = cm * 72 / 2.54
        
            .Height = h * 72 / 2.54
            .Width = w * 72 / 2.54
            .Left = l * 72 / 2.54
            .Top = t * 72 / 2.54
        End With
       
        
        '更新表格2数据
        
        
        sh.Range("D1:E4").Select
        
        Selection.Copy
        
        pReport.Slides(1).Shapes(1).Select
        pReport.Slides(1).Shapes.PasteSpecial ppPasteDefault
        
         
         'cm制
         
         'h = 0.03
         'w = 0.03
         l = 21.59
         t = 12.34
         
    '    h = sh.Range("G1").Value
    '    w = sh.Range("G2").Value
    '    l = sh.Range("G3").Value
    '    t = sh.Range("G4").Value
    
        With pp.ActiveWindow.Selection.ShapeRange
        
        'pt制,换算单位:pt = cm * 72 / 2.54
        
            '.Height = h * 72 / 2.54
            '.Width = w * 72 / 2.54
            .Left = l * 72 / 2.54
            .Top = t * 72 / 2.54
        End With
       
        Application.ScreenUpdating = True
        
        '由于PPT可能出现重名的情况,所以默认不提醒,直接覆盖掉原有PPT。
        Application.DisplayAlerts = False
        
        pReport.SaveAs ThisWorkbook.Path & "\" & Format(Now, "yyyy-MM-dd") & " " & "模板更新" & ".pptx"
        
        Application.DisplayAlerts = True
        
    End Sub
    
    

    参考资料:

    http://www.exceloffice.net/archives/2091
    (介绍了ppt的Application、Presentation、Worksheet等层级的关系。)
    http://www.exceloffice.net/archives/1275
    (介绍如何修改ppt对象的格式)
    https://blog.csdn.net/olivesun88/article/details/50980698
    (介绍如何把数据copy到PPT中)
    https://blog.csdn.net/smking/article/details/4975324
    (介绍VBA操作PPT)
    http://club.excelhome.net/thread-1484716-1-1.html
    (我之前在ExcelHome提问的全过程,也就是我自己的解决问题的过程。。)

    参考资料太多了,就不全写了,感谢无私奉献的互联网er。

    附件贴不上CSDN,请移步去ExcelHome看附件。

    展开全文
  • VBA是利用Office实现个人小型办公自动化的有效手段(工具),这是我的对VBA的定义。我以传递我多年实际经验为宗旨,授人...今日推出常用“积木”过程案例分享第325期: VBA自动生成图表。这些专辑就是我多年实际利用VB...
  • 采用Microsoft Basic 6.0 编程工具,利用VBA语言通过宏录制技术和嵌入控件及对象技术将Excel应用程序中的数据自动生成图表,并实现Excel工作簿和Word文档两个应用程序之间的数据无缝连接,进而通过Word文档的书签...
  • VBA与Excel进阶系列-01-图表(上篇)

    千次阅读 2017-08-05 11:11:05
    Excel中使用VBA自动生成图表
  • 目录 环境说明逻辑结构效果说明及截图①. 安装SecureCRT②.... 自动生成图表并邮件发送 环境说明 系统: Windows Server 2003, Windows Server 2008 Windows Server 2003上目录结构: Windows Server 2...
  • 自动生成VBA窗体菜单

    2010-08-16 15:23:46
    自动生成VBA窗体菜单 '*************************** '* 菜单类 * '*************************** Option Explicit Private WithEvents MenuBar_MenuItem As MSForms.Label '菜单项 Private WithEvents WorkForm As...
  • VBA案例5:自动生成地图

    千次阅读 2017-11-15 00:00:00
    做一个地图显示分析数据的图表:如下,筛选不同的指标,地图自动变动。作图步骤:1、找中国地图的矢量图,放在excel上,矢量图是可以对每个省份进行单独编辑的。2、对各个省份的图形进行重新命名,比如:新疆,在...
  • 你是否曾经惊叹:他们究竟是如何做到在短时间内完成海量的交付件,并且PPT里面的文字和图表对得整整齐齐,甚至于一个像素都不差,在翻页的时候,除了局部的内容不一样,你竟然感觉不到其他部分有任何变化。...
  • 有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学...
  • VBA常用技巧

    2014-12-21 16:39:28
    技巧60 使用VBA自动生成图表 12 技巧61 使用独立窗口显示图表 12 技巧62 导出工作表中的图表 12 技巧63 多图表制作 12 第5章 Application对象 12 技巧64 取得Excel版本信息 12 技巧65 取得当前用户名称 12 技巧66 ...
  • VBA编程技巧大全

    2013-08-05 09:03:19
    技巧60 使用VBA自动生成图表 145 技巧61 使用独立窗口显示图表 149 技巧62 导出工作表中的图表 150 技巧63 多图表制作 151 第5章 Application对象 155 技巧64 取得Excel版本信息 155 技巧65 取得当前用户名称 156 ...
  • 你是否曾经惊叹:他们究竟是如何做到在短时间内完成海量的交付件,并且PPT里面的文字和图表对得整整齐齐,甚至于一个像素都不差,在翻页的时候,除了局部的内容不一样,你竟然感觉不到其他部分有任何变化。...
  • 2016-08-10 14:18标签:摘要:LabVIEW中Excel报告生成功能开发介绍利用LabVIEW报告生成工具包生成包含数据、文本、表格、图表、图片以及VBA宏的Excel格式报告的3种方法,及通过ActiveX自动化技术对报告生成工具包...
  • 使用OWC的一个技巧

    2004-07-28 13:50:00
    很多使用OWC生成图表的朋友都觉得这个...其实有一个简单的方法:我们可以在excel中录制一个宏,在录制的过程中把要生成的图表画出来,然后查看自动生成vba代码,经过简单修改,就可以移植到项目中去,非常方便。...
  • (即里面的range analysis) 外部文件的保存(包括静态图表) xml文件的生成 正态函数的模拟和图表自动更新 还有另外一写乱其八糟的功能 <br>因为我在国外念书,所以里面都是英文的,而且是在老师...
  • │ │ 技巧297 随单元格自动变化的图表标题.xls │ │ 技巧298 图表背景——横向分割.xls │ │ 技巧299 图表背景——纵向分割.xls │ │ 技巧300 图表背景——四象限图表.xls │ │ 技巧301 复合饼图.xls │ ...
  • 自动填充功能 • 数据的格式化 • 设置数字格式 • 数据类型转换 • 自定义数字格式 • 数据的填充复制 • 数据的查找替换 • 格式查找替换 • 数据中含通配符的查找 • 表格边框设置立体效果 • 如何在Excel自动...
  • Excel百宝箱9.0无限制破解版

    热门讨论 2012-02-03 19:05:29
    生成系统图标】:VBA编程人员常用的工具。可以查询Excel内部图标的ID号 【获取内置命令ID】:VBA编程人员常用的工具。可以查询Excel内部命令的ID号 【修复Excel】:当您的Excel某些功能无法使用时,或者无缘无故多出...
  • Excel百宝箱

    2012-10-27 17:09:21
    生成系统图标】:VBA编程人员常用的工具。可以查询Excel内部图标的ID号 【获取内置命令ID】:VBA编程人员常用的工具。可以查询Excel内部命令的ID号 【修复Excel】:当您的Excel某些功能无法使用时,或者无缘无故多出...
  • ifix电子书.7z

    2019-08-31 14:07:41
    该手册还解释如何生成变量、访问数据、使用全局变量、由VBA脚本创建向导和动画功能。 使用VisiconX 插入VisiconX控件,连接和访问OLE DB数据供应者,创建和动画查询以及使用VisiconX的属性和方法。 使用终端服务器...
  • 生成系统图标】:VBA编程人员常用的工具。可以查询Excel内部图标的ID号 【获取内置命令ID】:VBA编程人员常用的工具。可以查询Excel内部命令的ID号 【修复Excel】:当您的Excel某些功能无法使用时,或者无缘无故多...
  • 【选择本表图片】 将工作表中的图表导出为图片保存起来。 【批量导入图片到右列】 批量将图片导入到工作表中对应图片名字的右边。 【将选区转换成图片】 将工作表中的当前选中区域另存为图片。 【一键导出图形】 将...

空空如也

空空如也

1 2 3 4 5
收藏数 83
精华内容 33
关键字:

vba自动生成图表