ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 8368|回复: 16

[求助] VBA实现快捷制图出现的问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-11-18 00:38 | 显示全部楼层 |阅读模式
自从学习VBA来,得到了大家的热情帮助,首先表示真诚的感谢。
小弟用VBA做了一个快捷根据选定数据制图的代码:: 先筛选出要制图的区域,然后选定前两列数据进行制图。发现了一个问题:做一张表的时候没有问题,但是当我改变筛选地区,再生成表的时候却不行了,因为生成的第一张表会因为我改变了筛选地区发生变化。

具体请大家看我的截图和附件,再次感谢帮助!
1.JPG 3.JPG 2.JPG 3a.JPG 5.JPG

11-17 自动制表.7z

16.61 KB, 下载次数: 30

TA的精华主题

TA的得分主题

发表于 2015-11-18 12:19 | 显示全部楼层
寫入ChartTitle之前,要先設定HasTitle=True。
ActiveChart.HasTitle = True

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-20 03:55 | 显示全部楼层
phsu 发表于 2015-11-18 12:19
寫入ChartTitle之前,要先設定HasTitle=True。
ActiveChart.HasTitle = True

兄弟,我按你说的方法改代码,结果发现还是一改变筛选的地区,做好的图跟着变化。。。
不知道要怎么才能彻底解决

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-20 22:34 | 显示全部楼层
肯请各位朋友指点迷津,非常想知道这个问题应该怎么解决。。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-21 02:02 | 显示全部楼层
上了附件的,有没有朋友能指点 一下 这个问题怎么解决。。。

TA的精华主题

TA的得分主题

发表于 2015-11-22 11:45 | 显示全部楼层
我將你的代碼做了大幅度修改,你看看是否符合需求。
Public Sub TestChart()
    Dim r1 As Range
    Dim nRow As Integer
    With Sheet2.ChartObjects
        If .count <> 0 Then
            .Delete
        End If
    End With
    Sheet2.Columns("A:C").Clear
    Set r1 = Sheet1.AutoFilter.Range.SpecialCells(xlCellTypeVisible)
    r1.Copy Sheet2.Range("A1")
    With ThisWorkbook.Worksheets("Sheet2")
        .Activate
        nRow = .Range("A65536").End(xlUp).Row
    End With
    Charts.Add
    With ActiveChart
        .ChartType = xlPie
        .SetSourceData Source:=Sheet2.Range("A2:B" & nRow)
        .HasTitle = True
        .ChartTitle.Characters.Text = Sheet2.Range("C3")
        .Location xlLocationAsObject, "Sheet2"
    End With
End Sub

TA的精华主题

TA的得分主题

发表于 2015-11-22 11:52 | 显示全部楼层
請參閱附件。

test.rar

29.1 KB, 下载次数: 51

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-23 13:11 | 显示全部楼层
phsu 发表于 2015-11-22 11:45
我將你的代碼做了大幅度修改,你看看是否符合需求。
Public Sub TestChart()
    Dim r1 As Range

谢谢这位兄弟!我是想实现选不同的地区生成不同的图表,最后每个地区生成后,各种个图表能同时继续显示,最后可以对比各种地区的图表。没表达清楚,不好意思

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-23 22:17 | 显示全部楼层
选择三个地区生成图表后,最后得到三个地区的图表对比。。。演示方案对比的时候用。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-24 10:44 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-16 13:54 , Processed in 0.027066 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表