返回列表 上一主題 發帖

[發問] Chart 項目次序移動

回復 1# li_hsien
錄製巨集是否無法進行Chart操作的錄製??? 使用了好幾次都只錄到Select、Activate之類的部分@@
套用試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim AR, i As Integer
  4.     With Sheet2.ChartObjects(1).Chart
  5.         .HasTitle = True              '圖表有的標題
  6.         .ChartTitle.Font.Size = 6.5  '標題字體大小
  7.         .ChartTitle.Characters.Text = "test"
  8.         .ChartTitle.Font.Name = "Arial" '標題字型
  9.         .Legend.Position = xlLegendPositionBottom   '圖例列底部
  10.         .Legend.Top = 115  '圖例位移
  11.         AR = Array(vbBlack, vbRed, vbGreen, vbYellow, vbBlue, vbMagenta, vbCyan, vbWhite)
  12.         For i = 1 To .SeriesCollection.Count
  13.             
  14.             If i <= UBound(AR) + 1 Then
  15.                 .SeriesCollection(i).Border.Color = AR(i - 1) '線條顏色
  16.                 .SeriesCollection(i).HasDataLabels = True
  17.                 .SeriesCollection(i).DataLabels.Font.Size = 15  '上列數值字體大小
  18.                 .SeriesCollection(i).DataLabels.Font.Name = "Arial" '上列數值字型
  19.             End If
  20.         
  21.         Next
  22.     End With
  23. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 4# li_hsien
你這視窗是2003以上的版本,此程式碼是以2003編寫.試試看是否可行.
  1. Option Explicit
  2. Sub Ex()
  3.     Dim MoObject As ChartObject, MoChart As Chart, i As Integer, Rng As Range
  4.     Dim Q(1 To 2)
  5.     Sheet1.ChartObjects.Delete
  6.     Set Rng = [F1:M21]                                  '圖表資料範圍
  7.     Set MoObject = Sheet1.ChartObjects.Add(Rng.Left, Rng.Top, Rng.Width, Rng.Height)
  8.                                                         '[F1:M21]上新增圖表
  9.     Set Rng = [b2:b21].Resize(, 3)     '設定範圍
  10.     '** 請在 [A2:A21]填上 日期 或 數字 : 作為X座標的數值
  11.    
  12.     MoObject.Chart.SetSourceData Rng   '指定圖表資料範圍
  13.     Set MoChart = MoObject.Chart
  14.     With MoChart
  15.         
  16.         Q(1) = Split(.SeriesCollection(3).Formula, ",")(2) '資料列的儲存格位址
  17.         Q(2) = Split(.SeriesCollection(1).Formula, ",")(2)
  18.         .SeriesCollection(1).Values = Range(Q(1))   '指定到儲存格
  19.         .SeriesCollection(3).Values = Range(Q(2))   '可在儲存格上變動數值
  20.         '******************************************************
  21.         Stop
  22.         Q(1) = .SeriesCollection(3).Values  '資料列的數值
  23.         Q(2) = .SeriesCollection(1).Values
  24.         .SeriesCollection(1).Values = Q(1)  '改變數值
  25.         .SeriesCollection(3).Values = Q(2)  '可在資料列變動數值
  26.         
  27.     End With
  28. End Sub
複製代碼
圖示: 可在資料列變動數值

感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 【停滯不前,終無所得】人都迷於尋找奇蹟,因而停滯不前;縱使時間再多、路再長,也了無用處,終無所得。
返回列表 上一主題