ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助]关于宏生成图的问题

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-12-14 20:00 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
另外我想把这个图改系列按行改为按列 怎么修改里面的代码 谢谢斑竹

TA的精华主题

TA的得分主题

发表于 2004-12-14 22:30 | 显示全部楼层
我的例子中并没有设定按行还是按列作图表,你只要修改Range()中的地址就可以了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-12-15 14:33 | 显示全部楼层

哦 好谢谢 我试一下

[此贴子已经被作者于2004-12-15 14:36:42编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-12-16 11:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
lNhsAFZt.rar (14.51 KB, 下载次数: 30)

不好意思啊 斑竹大人 我很菜的 我改了代码之后 仍然有错误 什么找不到方法和成员 .MarkerForegroundColorIndex = 7 就这个 可是我没有修改它啊

我只是修改了一下选定的EXCEL文件的对应区域 帮我改一下啊 图还是以前那个图 我的数据也是一样的 我很急啊

谢谢 斑竹了

[em03]

TA的精华主题

TA的得分主题

发表于 2004-12-17 00:07 | 显示全部楼层

这样修改后 Option Explicit Sub AddChart() Dim ws As Worksheet, NewSer As Series Dim ch As ChartObject, chRng As Range, wdZoom As Variant

Application.ScreenUpdating = False On Error GoTo Errhandler Set ws = Worksheets("OQC入檢年度推移圖") Set chRng = ws.Range("A2:O8") ws.Activate wdZoom = ActiveWindow.Zoom ActiveWindow.Zoom = 75

For Each ch In ws.ChartObjects If Not (Intersect(ws.Range("A1:O8"), ch.TopLeftCell) Is Nothing) Then ch.Delete Next ch

Set ch = ws.ChartObjects.Add(chRng.Left + 2, chRng.Top + 2, chRng.Width, chRng.Height) ch.Name = "OQC入檢年度推移圖" With ch.Chart .ChartType = xlLineMarkers

Set NewSer = .SeriesCollection.NewSeries With NewSer .XValues = ws.Range("C10:C21") .Values = ws.Range("F10:F21") .Name = ws.Range("F9") With .Border .ColorIndex = 5 .Weight = xlMedium .LineStyle = xlContinuous End With .MarkerStyle = xlCircle .MarkerSize = 7 .MarkerBackgroundColorIndex = 7 .MarkerForegroundColorIndex = 7 '此句要在End With之前 End With Set NewSer = .SeriesCollection.NewSeries With NewSer .XValues = ws.Range("C10:C21") '修改 .Values = ws.Range("G10:G21") '修改 .Name = ws.Range("G9") '修改 With .Border .ColorIndex = 11 .Weight = xlThin .LineStyle = xlContinuous End With .MarkerStyle = xlDiamond .MarkerSize = 7 .MarkerBackgroundColorIndex = 11 .MarkerForegroundColorIndex = 11 End With

Set NewSer = .SeriesCollection.NewSeries With NewSer .XValues = ws.Range("C10:C21") .Values = ws.Range("J10:J21") '修改 .Name = ws.Range("J9") '修改 .AxisGroup = xlSecondary With .Border .ColorIndex = 3 .Weight = xlMedium .LineStyle = xlContinuous End With .MarkerStyle = xlStar .MarkerSize = 7 .MarkerBackgroundColorIndex = xlNone .MarkerForegroundColorIndex = 10 End With

Set NewSer = .SeriesCollection.NewSeries With NewSer .XValues = ws.Range("C10:C21") .Values = ws.Range("K10:K21") '修改 .Name = ws.Range("K9") '修改 .AxisGroup = xlSecondary With .Border .ColorIndex = 5 .Weight = xlThin .LineStyle = xlContinuous End With .MarkerStyle = xlX .MarkerSize = 7 .MarkerBackgroundColorIndex = xlNone .MarkerForegroundColorIndex = 5 End With

.HasTitle = True With .ChartTitle .AutoScaleFont = False .Caption = "OQC入檢年度品質推移圖(TOTAL)" .Font.Name = "新細明體" .Font.FontStyle = "Bold" .Font.Size = 18 .Left = 140 .Top = 0 End With

With .Axes(xlValue, xlPrimary) .HasMajorGridlines = False .HasTitle = True With .AxisTitle .AutoScaleFont = False .Caption = ws.Range("F9") & "(%)" .Font.Name = "新細明體" .Font.Size = 10 End With .TickLabels.AutoScaleFont = False With .TickLabels.Font .Name = "Arial" .Size = 10 End With End With With .Axes(xlValue, xlSecondary) .HasTitle = True With .AxisTitle .AutoScaleFont = False .Caption = ws.Range("J9") & "(ppm)" .Font.Name = "新細明體" .Font.Size = 10 End With .TickLabels.AutoScaleFont = False With .TickLabels.Font .Name = "Arial" .Size = 10 End With End With

With .Axes(xlCategory).TickLabels .AutoScaleFont = False With .Font .Name = "Arial" .Size = 10 End With End With With .Legend .AutoScaleFont = False With .Font .Name = "新細明體" .Size = 10 End With .Position = xlTop .Left = 400 .Top = 8 End With

With .PlotArea .Interior.ColorIndex = 34 .Left = 15 .Top = 20 .Width = 610 .Height = 135 End With

End With

Errhandler:

Set ws = Nothing Set NewSer = Nothing Set ch = Nothing Set chRng = Nothing

ActiveWindow.Zoom = wdZoom Application.ScreenUpdating = True End Sub 还有一个问题是你工作表中9月起无数据的单元格中都有一个0长度字符,这样图表中就不会忽略,会以数值0来处理,你应该先选择空单元格区域后删除。

[此贴子已经被作者于2004-12-17 0:13:05编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-12-17 09:49 | 显示全部楼层

啊 斑竹 我昨天在晚上10点多走后 你还不在 今天9点多 我估计你也没上线 哪知道 你都已经改好了 真神了

敬业精神佩服

ActiveWindow.Zoom = wdZoom 這個代碼是什么意思啊 為什么老是由于這個代碼顯示我出錯啊

怎么修改

[此贴子已经被作者于2004-12-17 10:17:50编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-12-17 09:51 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
哎 我的数据是从ACCESS中自动导入EXCEL的 关于无数据自动填为0 我还没来的急在ACCESS中做呢 先忙着通过领导审查啊 我知道在 EXCEL中也可以改 只是现在没时间了 先不管了

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-12-17 09:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
真是谢谢斑竹啊 我经过你的改正后成功了 我一定要努力把EXCEL学好 向斑竹一样 也热心的帮助大家

TA的精华主题

TA的得分主题

发表于 2004-12-17 13:36 | 显示全部楼层
请问您是在什么环境下运行程序的? 是在VBE编辑窗口?还是在您要作图表的工作表中用“工具》宏》宏”中选择宏名后运行? 还有个问题就是我前面的附件您打开后点运行按钮可以执行吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-12-17 14:29 | 显示全部楼层

我是在繁体的操作系统运行 出现这个问题的 我是用ACCESS里面的程序 直接运行EXCEL里面的宏出现这个问题的 然后打开EXCEL之后用你的第二句话也出现了这个问题

不过现在好象又好了 ,不出现问题 我主要想知道是什么原因 那个代码是什么意思

在繁体下运行EXCEL 是把你的程序直接复制到里面的 现在好象也没问题 一直没出错

[此贴子已经被作者于2004-12-17 14:31:28编辑过]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 20:07 , Processed in 0.044563 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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