• VBA的使用(2)


    1. 图表操作

    Sub InsertGraph()
    Dim myChtObj As ChartObject
    Dim rngChtData As Range
    Dim rngChtXVal As Range
    Dim iColumn As Long
    Dim mySrs As Series
     
     ' make sure a range is selected
     If TypeName(Selection) <> "Range" Then Exit Sub
     
     ' define chart data
     Set rngChtData = Sheets("Graph").Range("d5:bc25")
     
     ' define chart's X values
     With rngChtData
       Set rngChtXVal = .Columns(1).Offset(1).Resize(.Rows.Count - 1)
     End With
     
      ' add the chart
      Set myChtObj = ActiveSheet.ChartObjects.Add _
      (Left:=250, Width:=800, Top:=75, Height:=350)
      With myChtObj.Chart
        .Legend.Delete                                           'delete legend
        .Axes(xlValue).MinimumScale = 0                          'set min time value
        .Axes(xlValue).MaximumScale = 1                          'set max time value
        .Axes(xlValue).MajorUnit = 0.0416666666                  'set time increments to 1 hr
        .Axes(xlValue).TickLabels.Orientation = 55               'set time label angle
        .Axes(xlCategory).CategoryType = xlCategoryScale         'set date labels to text
        .Axes(xlCategory).ReversePlotOrder = True                'set order to reverse order
        .ChartType = xlBarStacked                                ' make an XY chart
        .HasTitle = True                                         'add chart title
        .ChartTitle.Characters.Text = Sheets(1).Range("a1") & Chr(10) & "DUTY TIME RECORD FOR WEEK ENDING" _
          & " " & Format(Sheets(20).Range("D24"), "mm/dd/yyyy") & Chr(10) & Chr(10) & Sheets(20).Range("b3") _
          & Chr(10) & "EMP ID - " & Sheets(20).Range("b2")       'set chart title
        .ChartGroups(1).GapWidth = 0
        Do Until .SeriesCollection.Count = 0                     ' remove extra series
          .SeriesCollection(1).Delete
        Loop
     
        ' add series from selected range, column by column
        For iColumn = 2 To rngChtData.Columns.Count
          With .SeriesCollection.NewSeries
            .Values = rngChtXVal.Offset(, iColumn - 1)
            .XValues = "=GRAPH!$D$6:$D$25"                       'set verticle labels
          End With
        Next
     
      'set all bar colors to blue
      For i = 1 To .SeriesCollection.Count
        With .SeriesCollection(i)
          .Interior.Color = RGB(114, 137, 234)
        End With
         i = i + 1
        Next
    
      'set flight time bar colors to yellow
      For m = 1 To .SeriesCollection.Count
        For x = 2 To .SeriesCollection(m).Points.Count
          With .SeriesCollection(m).Points(x)
            .Interior.Color = RGB(248, 240, 86)
          End With
          x = x + 2
       Next
      Next
    
        'set even numbered series to transparent
      For n = 2 To .SeriesCollection.Count
        With .SeriesCollection(n)
          .Interior.ColorIndex = xlNone
        End With
       n = n + 1
      Next
     End With
    End Sub
  • 相关阅读:
    记一道乘法&加法线段树(模版题)
    2021CCPC网络赛(重赛)题解
    Codeforces Round #747 (Div. 2)题解
    F. Mattress Run 题解
    Codeforces Round #744 (Div. 3) G题题解
    AtCoder Beginner Contest 220部分题(G,H)题解
    Educational Codeforces Round 114 (Rated for Div. 2)题解
    Codeforces Global Round 16题解
    Educational Codeforces Round 113 (Rated for Div. 2)题解
    AtCoder Beginner Contest 182 F
  • 原文地址:https://www.cnblogs.com/xpvincent/p/2991359.html
Copyright © 2020-2023  润新知