1、Excel中的VBA常用图表类指令代码 ActiveSheet.UsedRange.Rows.Count 获取工作表的行数(注:考虑向前兼容性) Cells.Item(5,"C") 引单元格 C5 Cells.Item(5,3) 引单元格 C5 Application.WorksheetFunction.IsNumber("A1") 使用工作表函数检查 A1单元格中的数据是否为数字 Range("A:A").Find(Application.WorksheetFunction.Max(Range("A:A"))).Activate 激活单元格区域 A 列中最大值的单
2、元格 Cells(8,8).FormulaArray="=SUM(R2C[-1]:R[-1]C[-1]*R2C:R[-1]C)" 在单元格中输入数组公式。注意必须使用 R1C1 样式的表达式 ActiveSheet.ChartObjects.Count 获取当前工作表中图表的个数 ActiveSheet.ChartObjects("Chart1").Select 选中当前工作表中图表 Chart1 ActiveSheet.ChartObjects("Chart1").Activate 选中当前图表区域 ActiveChart.ChartArea.Select 选中
3、当前图表区域 WorkSheets("Sheet1").ChartObjects("Chart2").Chart.ChartArea.Interior.ColorIndex=2 更改工作表中图表的图表区的背景颜色 Sheets("Chart2").ChartArea.Interior.ColorIndex=2 更改图表工作表中图表区的颜色 Charts.Add 添加新的图表工作表 ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A1:D5"),PlotBy:=xlColumns 指定图表数据源并按列排列
4、 ActiveChart.Location Where:=xlLocationAsNewSheet 新图表作为新图表工作表 ActiveChart.PlotArea.Interior.ColorIndex=xlNone 将绘图区颜色变为白色 WorkSheets("Sheet1").ChartObjects(1).Chart.Export FileName:="C:MyChart.gif",FilterName:="GIF" 将图表 1 导出到 C 盘上并命名为MyChart.gif ActiveSheet.ChartObjects.Delete 删除工作表上所有的
5、ChartObject对象 ActiveWorkbook.Charts.Delete 删除当前工作簿中所有的图表工作表 Excel中的VBA常量和编码值所代表的标准图表类型 图表类型——描述——Excel VBA常量—— 编码值 (注:下面按此顺序排列) —————————————————————————— 柱形图—簇状柱形图— xlColumnClustered — 51 3D簇状柱形图—xl3DColumnClustered—54 堆积柱形图—xlColumnStacked— 52 3D堆积柱形图—xl3DColumnStacked — 55 百分比堆积柱形
6、图— xlColumnStacked100—53 3D百分比堆积柱形图— xl3DColumnStacked100— 56 3D柱形图—xl3DColumn— -4100 —————————————————————————— 条形图 — 簇状条形图—xlBarClustered— 57 3D簇状条形图— xl3DBarClustered— 60 堆积条形图— xlBarStacked— 58 3D堆积条形图— xl3DBarStacked— 61 百分比堆积条形图— xlBarStacked100— 59 3D百分比堆积条形图— xl3DBarStacked100—
7、 62 —————————————————————————— 折线图— 折线图— xlLine— 4 数据点折线图— xlLineMarkers — 65 堆积折线图— xlLineStacked— 63 堆积数据点折线图— xlLineMarkersStacked— 66 百分比堆积折线图— xlLineStacked100— 64 百分比堆积数据点折线图— xlLineMarkersstacked100— 67 3D折线图— xl3DLine— -4101 —————————————————————————— 饼图— 饼图— xlPie— 5 分离型饼图— xlP
8、ieExploded— 69 3D饼图— xl3DPie— -4102 分离型3D饼图— xl3DPieExploded— 70 复合饼图— xlPieOfPie— 68 复合条饼图— xlBarOfPie — 71 —————————————————————————— XY(散点)图— 散点图 — xlXYScatter — -4169 平滑线散点图— xlXYScatterSmooth — 72 无数据点平滑线散点图 — xlXYScatterSmoothNoMarkers — 73 折线散点图 — xlXYScatterLines — 74 无数据点折线散点图
9、— xlXYScatterLinesNoMarkers — 75 —————————————————————————— 气泡图 — 气泡图 — xlBubble — 15 3D气泡图 — xlBubble3DEffect — 87 —————————————————————————— 面积图 — 面积图 — xlArea — 1 3D面积图 — xl3DArea — -4098 堆积面积图 — xlAreaStacked — 76 3D堆积面积图 — xl3DAreaStacked — 78 百分比堆积面积图 — xlAreaStacked100 — 77 3D百
10、分比堆积面积图 — xl3DAreaStacked100 — 79 —————————————————————————— 圆环图 — 圆环图 — xlDoughnut — -4120 分离型圆环图 — xlDoughnutExploded — 80 —————————————————————————— 雷达图 — 雷达图 — xlRadar — -4151 数据点雷达图 — xlRadarMarkers — 81 填充雷达图 — xlRadarFilled — 82 —————————————————————————— 曲面图 — 3D曲面图 — xlSu
11、rface — 83 曲面图(俯视) — xlSurfaceTopView — 85 3D曲面图(框架图) — xlSurfaceWireframe — 84 曲面图(俯视框架图) — xlSurfaceWireframeTopView — 86 —————————————————————————— 股价图 — 盘高-盘低-收盘图 — xlStockHLC — 88 成交量-盘高-盘低-收盘图 — xlStockVHLC — 90 开盘-盘高-盘低-收盘图 — xlStockOHLC — 89 成交量-开盘-盘高-盘低-收盘图 — xlStockVOHLC — 91
12、—————————————————————————— 圆柱图 — 柱形圆柱图 — xlCylinderColClustered — 92 条形圆柱图 — xlCylinderBarClustered — 95 堆积柱形圆柱图— xlCylinderColStacked — 93 堆积条形圆柱图 — xlCylinderBarStacked — 96 百分比堆积柱形圆柱图 — xlCylinderColStacked100 — 94 百分比堆积条形圆柱图 — xlCylinderBarStacked100 — 97 3D柱形圆柱图 — xlCylinderCol — 98 ——
13、———————————————————————— 圆锥图— 柱形圆锥图 — xlConeColClustered — 99 条形圆锥图 — xlConeBarClustered — 102 堆积柱形圆锥图 — xlConeColStacked — 100 堆积条形圆锥图 — xlConeBarStacked — 103 百分比堆积柱形圆锥图 — xlConeColStacked100 —101 百分比堆积条形圆锥图 — xlConeBarStacked100 —104 3D柱形圆锥图 — xlConeCol — 105 ——————————————————————————
14、 棱锥图 — 柱形棱锥图 — xlPyramidColClustered — 106 条形棱锥图 — xlPyramidBarClustered — 109 堆积柱形棱锥图 — xlPyramidColStacked — 107 堆积条形棱锥图 — xlPyramidBarStacked — 110 百分比堆积柱形棱锥图 — xlPyramidColStacked100 — 108 百分比堆积条形棱锥图 — xlPyramidBarStacked100 — 111 3D柱形棱锥图 — xlPyramidCol — 112 利用以上参数,可用VBA写出批量产生Ex
15、cel图表的程序。代码如下: Private Sub cmdCompareSales_Click() Dim iRows, iChartType, iChartTypeRows As Integer Dim iTemp As Integer Dim sChartTitle, sCategoryTitle, sValueTitle As String Dim sChartName As String Dim lArrayChartType(73) As Long, sArrayChartConst(73) As String, sArrayChartExplain(73) As St
16、ring For iTemp = 0 To 72 lArrayChartType(iTemp) = Sheets("Sheet2").Cells(iTemp + 1, 1).Value sArrayChartConst(iTemp) = Sheets("Sheet2").Cells(iTemp + 1, 3).Value sArrayChartExplain(iTemp) = Sheets("Sheet2").Cells(iTemp + 1, 2).Value Next iTemp Sheets("Sheet1").Activate sChartTitle
17、 = "销售量比较图" sCategoryTitle = "Category标题" sValueTitle = "Value标题" iRows = Sheets("sheet1").UsedRange.Rows.Count On Error Resume Next Sheets("sheet1").ChartObjects.Delete For iChartType = 0 To 72 Step 1 Charts.Add ActiveChart.ChartType = lArrayChartType(iChartType) ActiveChart.Se
18、tSourceData Source:=Sheets("Sheet1").Range("A2:M" & CStr(iRows)), PlotBy:=xlRows ActiveChart.Location where:=xlLocationAutomatic, Name:="Sheet1" With ActiveChart .HasTitle = True .ChartTitle.Characters.Text = sChartTitle & sArrayChartConst(iChartType) & sArrayChartExplain(iChartType)
19、' .ChartTitle.Characters.Text = sChartTitle & "xl3DArea" .Axes(xlCategory, xlPrimary).HasTitle = False ' .Axes(xlCategory, xlPrimary).AxisTitle.Text = sCategoryTitle .Axes(xlValue, xlPrimary).HasTitle = False ' .Axes(xlValue, xlPrimary).AxisTitle.Text = sValueTitle End With
20、 sChartName = Mid(ActiveChart.Name, 8, 6) ActiveSheet.Shapes(sChartName).Left = Range("B" & Str(18 * (iChartType + 1))).Left ActiveSheet.Shapes(sChartName).Top = Range("B" & Str(18 * (iChartType + 1))).Top ActiveChart.Export ThisWorkbook.Path & "\" & Format(Now(), "yymmddhhmm") & sArrayChartConst(iChartType) & ".gif", "gif" Sheets("sheet1").ChartObjects(sChartName).Delete Next iChartType End Sub 注意以上的参数存于Sheet2的1至3列中。






