全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 Excel
8855 3
2012-07-24
需要将一批数据批量生成图表,具体要求如下:

                V1           V2            V3            V4            V5           V6

P1
P2
P3
P4
....

Excel数据格式如上,行表示学生,列表示每个学生的成绩。想要为每一个学生建一个成绩报告,用条形图(横的)表示,且要求前三种成绩一列,后三种成绩一列。跪求各位高手指点。最好是直接生成在Word里面。谢啦。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-7-24 10:25:25
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-8-13 17:53:18
数据透视表可以做,也可以做出图,但是你的要求我看不懂,何况你没有具体数据,描述的太笼统了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-6-27 20:05:00
Sub 图表批量生成()
    For r = 1 To 100
        Charts.Add
        ActiveChart.ChartType = xlLineMarkers
        ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A" & r & ":E" & r)
        'ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1" '删除本句前的'可将各个图表作为对象插入sheet1中,否则各图表将单独作为chart表插入工作簿。
    Next
End Sub
===================
Sub 图表批量生成()
   xx = 0
   yy = 0
For r = 4 To 57    '以每位学生生成一个图表,循环产生全班每位学生的曲线图
        Charts.Add
        ActiveChart.ChartType = xlLineMarkers
        ActiveChart.SetSourceData Source:=Sheets("一班全图").Range("A" & r & ":U" & r), PlotBy _
        :=xlRows    '源数据系列产生于行
        ActiveChart.Location Where:=xlLocationAsObject,Name:="一班全图"       '所有图表插入同一工作表中
         With ActiveChart.Axes(xlValue)     '设置图表属性 如:刻度和线型
        .MinimumScaleIsAuto = True
        .MaximumScale = 60
        .MinorUnit = 1
        .MajorUnit = 5
        .Crosses = xlAutomatic
        .ReversePlotOrder = True
        .ScaleType = xlLinear
        .DisplayUnit = xlNone
    End With
    ActiveChart.Legend.Select
    Selection.Delete
    ActiveChart.SeriesCollection(1).Select
    With Selection.Border
        .ColorIndex = 3
        .Weight = xlMedium
        .LineStyle = xlContinuous
    End With
    With Selection
        .MarkerBackgroundColorIndex = xlAutomatic
        .MarkerForegroundColorIndex = 5
        .MarkerStyle = xlCircle
        .Smooth = False
        .MarkerSize = 3
        .Shadow = False
    End With                 '图表属性设置结束
   Set myDocument = ActiveSheet
  For Each S In myDocument.ChartObjects
   'MsgBox (S.Name)
    S.Activate
    ActiveChart.ChartArea.Select       '设置图表(即外框)大小及在工作表中的位置
    S.Top = yy * 136
    S.Left = xx * 274
     S.Height = 132
     S.Width = 270
    ActiveChart.PlotArea.Select         '设置绘图区大小及相对于外框的位置
    Selection.Top = 9
    Selection.Height = 132
    Selection.Left = 0
    Selection.Width = 270
    xx = xx + 1              '设置计数器,让图表每三个排一行
    If xx >= 3 Then
    xx = 0
    yy = yy + 1
    End If
  Next S
Next r
End Sub
==================================
ActiveChart.ChartArea.Select
Sub 改变图表尺寸()
Set myDocument = ActiveSheet
For Each S In myDocument.ChartObjects
'MsgBox (S.Name)
    S.Activate
    ActiveChart.ChartArea.Select    '这部分是图表区的尺寸代码
    S.Width = 200
    S.Height = 200   
    ActiveChart.PlotArea.Select   '这部分是绘图区的尺寸代码
    Selection.Width = 191
    Selection.Top = 9
    Selection.Height = 185
Next S
End Sub
=================
清除图表可以用这个:
Sub test()
For Each r In Sheets("一班全图").ChartObjects
r.Delete
Next
End Sub
=========================
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群