返回列表 上一主題 發帖

[發問] 資料排序反轉

回復 2# wufonna
試試看!

IsSort2.rar (817.56 KB)
解決方法如下:
1.  .SetSourceData Source:=Range("data!$A$4:data!$A$" & totalRows & ", data!$B$4:data!$E$" & totalRows)
     出現錯誤訊息; 但不予理會,其問題是因 totalRows 值 = 3075 (超出 255) 所引發。
2.  在 ActiveSheet.Shapes.AddChart.Select 上一行, 故意補上一行: (輸入)
     totalRows = 100
     然後、再重新執行 drawCharts(), 待正常繪出圖表後再將 totalRows = 100 那一行刪除掉,再執行 drawCharts,
     之後便一切 OK 解決了。至於為何會出現此錯誤訊息,可能要請教各位前賢了!
3.  祝順意!

TOP

回復 6# wufonna
回復當事者時,請點按 "回復" 選鈕,否者當事人是無法得知
你是否答覆回應,這也是一種禮貌與尊重。
你的問題是否如圖?

TOP

回復 8# wufonna
.HasLegend = 不是 True , 便是 False
試過的結果是無法將其中任一的 Legent 位置移開。

TOP

本帖最後由 c_c_lai 於 2013-10-11 20:02 編輯

回復 11# wufonna
  1. Sub MySort()
  2.      Dim EndKBarRow As Long
  3.         
  4.     With Sheets("data")
  5.         EndKBarRow = .Range("A" & Rows.Count).End(xlUp).Row
  6.    
  7.         With .Sort
  8.             .SortFields.clear
  9.             .SortFields.Add Key:=Range("A5"), SortOn:=xlSortOnValues, Order:=xlAscending
  10.             '  資料由小而大依序排序
  11.             '  .SortFields.Add Key:=Range("A5"), SortOn:=xlSortOnValues, Order:=xlDescending
  12.             '  資料由大而小依序排序
  13.             .SetRange Range("A5:R" & EndKBarRow)
  14.             ' .Header = xlNone
  15.             .Apply
  16.         End With
  17.     End With
  18. End Sub
複製代碼

TOP

回復 13# wufonna
你在 drawCharts() 最前、及最後加上一行 (如下) 繪圖完成後畫面會更清爽。
  1. Sub drawCharts()
  2.     Dim toindexRows As Single, totalRows As Single, totalRows2 As Single
  3.     Dim VIMax As Single, VIMin As Single
  4.     Dim xRow, yCol, cHeight, cWidth As Integer
  5.     Dim text As String
  6.     Dim chartname As String
  7.     Dim sRowHeight As Single

  8.     '  xRow = 3
  9.     xRow = 1
  10.     yCol = 1
  11.     '  cHeight = 450      'CHeight 定義為圖表所佔的列高
  12.     '  cWidth = 700
  13.     cHeight = 360         ' CHeight 定義為圖表所佔的列高
  14.     cWidth = 720
複製代碼
  1.     Sheets("chart").[A1].Select
  2. End Sub
複製代碼

TOP

本帖最後由 c_c_lai 於 2013-10-12 07:43 編輯

回復 13# wufonna
我在 drawCharts() 加了一小段程式,它將標題移出繪圖區,
如此,比較不會壓到 K 線圖的繪製 (附上: 前、後的圖表提供比較):
  1.         .ChartArea.Height = cHeight                     ' 圖表高度
  2.         .ChartArea.Width = cWidth                       ' 圖表寬度
  3.          '
  4.         With .PlotArea                          ' 圖表的繪圖區
  5.             .Top = 20                           ' 圖表的實際繪圖區起始位置
  6.             .Left = 1
  7.             .Width = .Parent.ChartArea.Width
  8.             .Height = .Parent.ChartArea.Height
  9.             .Interior.ColorIndex = xlNone
  10.             .InsideHeight = cHeight - 70        ' 調整圖表的繪圖區內部高度 (為配合.Legend.Position = xlBottom )
  11.         End With
複製代碼

TOP

回復 16# wufonna
我將 "台灣加權指數-報酬率區間圖III"  稍稍整理了一下,
並加以程式碼對位,希望對你能有所助益。
drawCharts2() 是我常應用的繪圖方式,供你參考!
台灣加權指數-報酬率區間圖III.rar (921.68 KB)

TOP

        靜思自在 : 得理要饒人,理直要氣和。
返回列表 上一主題