標題:
[發問]
如何應用 VBA 將股票圖完整的呈現出來?
[打印本頁]
作者:
c_c_lai
時間:
2012-4-23 07:07
標題:
如何應用 VBA 將股票圖完整的呈現出來?
本帖最後由 c_c_lai 於 2012-4-23 07:19 編輯
如何應用撰寫 VBA 程式將股票圖完整的呈現出來?
這個議題著實也想了一陣子,怎麼畫也只能單純地繪製出一個原始的股票圖,
先別說是再加入其它,如:成交量等,連基本的時間軸也無從同時加入 (請參考附上程式)。
我指的是應用 VBA 來撰寫,而不是直接以 EXCEL 上列的圖表製作。
請教可有否解決之道嗎?
1) 將時間軸能予以同時匯入。
2) 再增加一項 成交量數列,並以 .ChartType = xlColumnClustered 的方式表達 (副座標值)。
附上檔案,謝謝各位先進指教!
[attach]10596[/attach]
[attach]10597[/attach]
作者:
alexliou
時間:
2012-4-23 14:56
回復
1#
c_c_lai
這可以利用 xlStockVOHLC的ChartType來完成
假設日期在A欄,成交量在B欄, 開高低收分別在CDEF欄
n = Range("A1").End(xlDown).Row
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlStockVOHLC '自動會把日期和成交量帶進去
ActiveChart.SetSourceData Source:=Range("A1:F" & n)
With ActiveChart
.HasLegend = False
.Axes(xlCategory).CategoryType = xlCategoryScale 'X軸設為Category, 為避免有些日期無交易而造成圖形不連續
End With
作者:
alexliou
時間:
2012-4-23 15:25
本帖最後由 alexliou 於 2012-4-24 17:47 編輯
分成兩步做 且用到xlColumnClustered也是可以
這次加上顏色 上漲Bar用紅色 下跌用藍色
假設日期在A欄, 開高低收分別在BCDE欄, 成交量在F欄
Dim n As Integer
n = Range("A1").End(xlDown).Row
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range("A1:E" & n)
ActiveChart.ChartType = xlStockOHLC '自動會把日期帶進去
ActiveChart.ChartGroups(1).UpBars.Format.Fill.ForeColor.RGB = RGB(255, 0, 0)
ActiveChart.ChartGroups(1).DownBars.Format.Fill.ForeColor.RGB = RGB(0, 32, 96)
ActiveChart.SeriesCollection.Add Source:=Range("F
2
:F" & n) '不包含標題列, 要從2開始
ActiveChart.SeriesCollection(5).ChartType = xlColumnClustered
With ActiveChart
.HasLegend = False
.Axes(xlCategory).CategoryType = xlCategoryScale
End With
作者:
alexliou
時間:
2012-4-23 15:36
本帖最後由 alexliou 於 2012-4-24 17:48 編輯
另外一種設顏色的方法
n = Range("A1").End(xlDown).Row
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range("A1:E" & n)
ActiveChart.ChartType = xlStockOHLC
ActiveChart.SeriesCollection.Add Source:=Range("F
2
:F" & n) '不包含標題列 要從2開始
ActiveChart.SeriesCollection(5).ChartType = xlColumnClustered
With ActiveChart
.HasLegend = False
.Axes(xlCategory).CategoryType = xlCategoryScale
End With
With ActiveChart.ChartGroups(2) '注意, ChartGroup在插入成交量直條後變成2了
'如果在插入成交量直條前則要改為1, the sequence of code matters
.UpBars.Interior.Color = RGB(255, 0, 0)
.DownBars.Interior.Color = RGB(0, 32, 96)
End With
作者:
c_c_lai
時間:
2012-4-23 21:06
回復
4#
alexliou
為了方便您瞭解我測試的資料內容,一一將它們列示出來,並且只保留30筆資料做為測試之用。
程式中我也遵照您的說明加以修正。
成交量業已順利崁入 (副座標值), 並以 xlColumnClustered 方式呈現 (如附圖)。
接下來我想做的測試是再加上 5MA、20MA、60MA 這三條均線在 股票圖上 (均為主座標值),
我有測試過但都不成功,甚至連K線圖本身也都會不見。 附上程式碼有空時幫我增添進去測試,
我想是某些地方觀念不正確,沒寫對吧! 謝謝您!
日期 時間 開盤價 最高價 最低價 成交價 成交量 5MA 20MA 60MA
20120418 11:01 7155 7162 7154 7162 490 7153 7151 7158
20120418 11:02 7162 7162 7158 7160 206 7155 7152 7158
20120418 11:03 7160 7164 7160 7163 295 7157 7152 7158
20120418 11:04 7163 7164 7159 7160 196 7160 7153 7158
20120418 11:05 7160 7161 7158 7160 118 7161 7153 7158
20120418 11:06 7160 7161 7157 7158 125 7160 7154 7158
20120418 11:07 7158 7160 7157 7157 77 7160 7154 7158
20120418 11:08 7157 7158 7156 7157 121 7158 7155 7158
20120418 11:09 7157 7159 7157 7159 60 7158 7155 7157
20120418 11:10 7159 7160 7158 7158 73 7158 7156 7157
20120418 11:11 7158 7159 7157 7159 114 7158 7156 7157
20120418 11:12 7159 7161 7158 7160 88 7159 7157 7157
20120418 11:13 7160 7160 7155 7158 184 7159 7157 7156
20120418 11:14 7158 7162 7158 7161 122 7159 7157 7156
20120418 11:15 7161 7161 7155 7155 143 7159 7157 7156
20120418 11:16 7155 7155 7148 7148 391 7156 7157 7156
20120418 11:17 7148 7152 7148 7151 166 7155 7157 7155
20120418 11:18 7151 7154 7151 7152 76 7153 7157 7155
20120418 11:19 7152 7153 7147 7150 278 7151 7157 7155
20120418 11:20 7150 7152 7148 7151 130 7150 7157 7155
20120418 11:21 7152 7152 7149 7151 110 7151 7156 7154
20120418 11:22 7151 7151 7148 7148 139 7150 7156 7154
20120418 11:23 7148 7149 7145 7149 317 7150 7155 7154
20120418 11:24 7149 7150 7147 7150 107 7150 7155 7154
20120418 11:25 7150 7150 7144 7146 382 7149 7154 7154
20120418 11:26 7146 7146 7133 7135 2139 7146 7153 7154
20120418 11:27 7135 7136 7132 7132 511 7142 7152 7154
20120418 11:28 7132 7135 7128 7133 850 7139 7150 7153
20120418 11:29 7135 7137 7132 7134 318 7136 7149 7153
20120418 11:30 7135 7135 7127 7127 396 7132 7148 7153
複製代碼
[attach]10613[/attach]
[attach]10614[/attach]
Sub DrawAll()
Call drawStatistics
Call drawOmegaCharts
End Sub
Sub drawStatistics()
drawCharts ("統計圖表")
End Sub
Sub drawOmegaCharts()
drawCharts ("Omega")
End Sub
Sub removeCharts(st As String)
Dim oShape As Shape
Dim str As String
str = ActiveSheet.Name
Sheets(st).Select
For Each oShape In ActiveSheet.Shapes
If oShape.Type = 3 Then
oShape.Delete
End If
Next
Sheets(str).Select
End Sub
Sub drawCharts(sta As String)
Dim str As String
str = ActiveSheet.Name
Sheets(sta).Select
Call removeCharts(sta)
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Call mainPowerForce(sta)
Cells(1, 1).Select
Sheets(str).Select
End Sub
Sub mainPowerForce(sDraw As String)
Dim totalRows As Single
Dim counter, xRow, yCol, cHeight, cWidth, inLeft, inTop, inWidth As Integer
Dim text As String
Dim chartname As String
totalRows = Sheets("統計圖表").Range("B" & Rows.Count).End(xlUp).Row ' 傳回 B 欄所使用儲存格之最後一格之列號
Sheets(sDraw).Select
Cells(1, 11).Value = totalRows
ActiveSheet.Shapes.AddChart.Select
With ActiveChart
.SetSourceData Source:=Range("統計圖表!$B$1:統計圖表!$B$" & totalRows & ", 統計圖表!$C$1:統計圖表!$F$" & totalRows)
'.SetSourceData Source:=Range(" 統計圖表!$C$1:統計圖表!$F$" & totalRows)
' .ChartType = xlStockVOHLC ' 股票圖 ( 會造成 記憶體不足 )
.ChartType = xlStockOHLC ' 股票圖
With .ChartGroups(1)
.UpBars.Format.Fill.ForeColor.RGB = RGB(255, 0, 0)
.DownBars.Format.Fill.ForeColor.RGB = RGB(0, 32, 96)
End With
.SeriesCollection.Add Source:=Range("統計圖表!$G$1:統計圖表!$G$" & totalRows)
.SeriesCollection(5).Name = "=統計圖表!$G$1"
.SeriesCollection(5).ChartType = xlColumnClustered
With .ChartGroups(2) '注意, ChartGroup在插入成交量直條後變成 2 了
.UpBars.Interior.Color = RGB(255, 0, 0)
.DownBars.Interior.Color = RGB(0, 32, 96)
End With
.Axes(xlCategory).CategoryType = xlCategoryScale
.Axes(xlCategory).TickLabels.NumberFormatLocal = "hh:mm"
.Axes(xlCategory).MajorTickMark = xlNone
.Axes(xlCategory).TickLabelPosition = xlLow
.Axes(xlValue).TickLabels.NumberFormatLocal = "0_ " ' 代表物件的格式代碼。
End With
xRow = 3
yCol = 1
cHeight = 460
cWidth = 500
inLeft = 30
inTop = 30
inWidth = 378
text = "開盤價、最高價、最低價、收盤價"
chartname = Trim(Replace(ActiveChart.Name, ActiveSheet.Name, ""))
ActiveChart.ChartArea.Height = cHeight ' 將原本設定之高度調至適度位置
ActiveChart.ChartArea.Width = cWidth
ActiveSheet.Shapes(chartname).Left = Cells(xRow, yCol).Left ' 設定此圖表實際擺放的 X、Y 座標位置。
ActiveSheet.Shapes(chartname).Top = Cells(xRow, yCol).Top
With ActiveChart.PlotArea ' 實際繪圖區塊的範圍設定
.InsideLeft = inLeft
.InsideTop = inTop
.InsideWidth = inWidth
End With
ActiveChart.SetElement (msoElementChartTitleCenteredOverlay)
ActiveChart.ChartTitle.text = text
ActiveChart.ChartTitle.Format.TextFrame2.TextRange.Font.Size = 16
ActiveChart.Legend.Position = xlCorner ' 將圖表圖示從圖表最下方調整到圖表之右上角位置
End Sub
複製代碼
[attach]10615[/attach]
作者:
c_c_lai
時間:
2012-4-24 08:01
回復
4#
alexliou
可以將以下貼文全部Copy至一個 .csv 檔,然後再點選此檔案就可以直接進入到 Excel,
謝謝您的幫忙!
"日期","時間","開盤價","最高價","最低價","成交價","成交量","5MA","20MA","60MA"
20120418,11:01,7155,7162,7154,7162,490,7153,7151,7158
20120418,11:02,7162,7162,7158,7160,206,7155,7152,7158
20120418,11:03,7160,7164,7160,7163,295,7157,7152,7158
20120418,11:04,7163,7164,7159,7160,196,7160,7153,7158
20120418,11:05,7160,7161,7158,7160,118,7161,7153,7158
20120418,11:06,7160,7161,7157,7158,125,7160,7154,7158
20120418,11:07,7158,7160,7157,7157,77,7160,7154,7158
20120418,11:08,7157,7158,7156,7157,121,7158,7155,7158
20120418,11:09,7157,7159,7157,7159,60,7158,7155,7157
20120418,11:10,7159,7160,7158,7158,73,7158,7156,7157
20120418,11:11,7158,7159,7157,7159,114,7158,7156,7157
20120418,11:12,7159,7161,7158,7160,88,7159,7157,7157
20120418,11:13,7160,7160,7155,7158,184,7159,7157,7156
20120418,11:14,7158,7162,7158,7161,122,7159,7157,7156
20120418,11:15,7161,7161,7155,7155,143,7159,7157,7156
20120418,11:16,7155,7155,7148,7148,391,7156,7157,7156
20120418,11:17,7148,7152,7148,7151,166,7155,7157,7155
20120418,11:18,7151,7154,7151,7152,76,7153,7157,7155
20120418,11:19,7152,7153,7147,7150,278,7151,7157,7155
20120418,11:20,7150,7152,7148,7151,130,7150,7157,7155
20120418,11:21,7152,7152,7149,7151,110,7151,7156,7154
20120418,11:22,7151,7151,7148,7148,139,7150,7156,7154
20120418,11:23,7148,7149,7145,7149,317,7150,7155,7154
20120418,11:24,7149,7150,7147,7150,107,7150,7155,7154
20120418,11:25,7150,7150,7144,7146,382,7149,7154,7154
20120418,11:26,7146,7146,7133,7135,2139,7146,7153,7154
20120418,11:27,7135,7136,7132,7132,511,7142,7152,7154
20120418,11:28,7132,7135,7128,7133,850,7139,7150,7153
20120418,11:29,7135,7137,7132,7134,318,7136,7149,7153
20120418,11:30,7135,7135,7127,7127,396,7132,7148,7153
複製代碼
作者:
GBKEE
時間:
2012-4-24 15:32
回復
6#
c_c_lai
參考看看
[attach]10630[/attach]
作者:
c_c_lai
時間:
2012-4-24 17:59
回復
7#
GBKEE
再請教您:
(1) With Sheets("統計圖表")
E = Application.Transpose(.Range(.[d1], .[d1].End(xlToRight)).Value)
End With
E 指的是 D1:H286 的範圍嗎?
(2) Ar 處裡的過程看得有點不甚瞭解,能否將過程稍加說明? 因它又延伸到了 Rng(2) 的處理,
尤其是 Rng(1).Columns(Application.Match(Ar(xi), Rng(1).Rows(1), 0)) 指的是甚麼?
(3) 我將 If .Name = 副座標 And .Parent.SeriesCollection.Count > 1 Then .AxisGroup = 2
這段增修成:
If .Name = 副座標 And .Parent.SeriesCollection.Count > 1 Then
.AxisGroup = 2
.ChartType = xlColumnClustered (如附圖)
End If
為什麼加了 xlColumnClustered,
' .MarkerBackgroundColorIndex = xlNone
' .MarkerForegroundColorIndex = xlNone
' .Smooth = False 這三項都必須予以 Marked?
(4) 當圖表不存在時,程式 (制定資料區) 執行到 .ChartObjects.Delete 會產生
"執行階段錯誤 '1004'" 應用程式或物件定義上的錯誤,則必須先行將它 Marked 起來,等產生後,
再將它回復,接下來因已產生圖表,所以在按製圖 (不管幾百下) 當然也就 OK 了。
請位在無圖表時,應如何去避免此錯誤發生?
(5) 最後當然不得不承認您的圖表產生較有技巧性 (如附圖之上下比對),謝謝您的分享!
[attach]10635[/attach]
作者:
alexliou
時間:
2012-4-24 18:45
本帖最後由 alexliou 於 2012-4-24 18:54 編輯
回復
5#
c_c_lai
要增加5MA, 20MA, 50MA就和把成交量加上去一樣
可利用 SeriesCollection.Add 方法
假設5MA, 20MA, 50MA分別在H, I, J 欄
ActiveChart.SeriesCollection.Add Source:=Range("H
2
:J" & totalrows)
ActiveChart.SeriesCollection(6).ChartType = xlLine
ActiveChart.SeriesCollection(7).ChartType = xlLine
ActiveChart.SeriesCollection(8).ChartType = xlLine
資料序列6,7,8 (即5MA, 20MA, 50MA) 會與資料序列5(成交量)共用副座標軸
但5MA, 20MA, 50MA的刻度應與股價一致
所以需將副座標軸的刻度與主座標軸的刻度設為相同
缺點是當成交量與股價的規模差太多時
圖會看起來很奇怪 (所以成交量要取適當的單位, 讓它的值和股價不會差太多)
但我還找不出方法讓5MA, 20MA, 50MA與股價漲跌圖共用同一座標軸
作者:
GBKEE
時間:
2012-4-24 20:54
回復
8#
c_c_lai
(1) E 指的是 D1 往右到最後有資料的範圍 , [d1].End(xlToRight) 如工作表上按下 Ctrl+-> 右方向鍵
(2) Rng(1).Columns(Application.Match(Ar(xi), Rng(1).Rows(1), 0)) 指的是甚麼?
Rng(1).Columns(找到的欄)
Application.Match(Ar(xi), Rng(1).Rows(1), 0)-> 工作表Match函數 在 Rng(1).Rows(1)-> Rng(1)的第一列 尋找 Ar(xi)
(3) .ChartType = xlColumnClustered 有些屬性 並不是所有的圖形 都可以用的
(4) 當圖表不存在時,程式 (制定資料區) 執行到 .ChartObjects.Delete 會產生 "執行階段錯誤 '1004'"
2003版 不會有 是你的版本較嚴謹
(5) 捲軸 可縮短資料數, 直接打上數值也可以縮短資料數.
作者:
c_c_lai
時間:
2012-4-24 21:12
回復
9#
alexliou
我想要表達的是 ( '**************************************************************************************** ):
(1) Range("統計圖表!$B$1:統計圖表!$B$" & totalRows & ", 統計圖表!$C$1:統計圖表!$F$" & totalRows)
是指向 "時間軸、以及 開盤價、最高價、最低價、收盤價" 等。
(2) Range("統計圖表!$H$1:統計圖表!$J$" & totalRows)
是分別為 "5MA、20MA、以及 60MA" 等。
(3) Range("統計圖表!$G$1:統計圖表!$G$" & totalRows)
是為 成交量。
目前我想將 (1) 和 (2) 設成 主座標軸, (3) 想將它設定為 副座標軸。
在此範例中,應如何正確去設定 .SeriesCollection(#).AxisGroup = 1 or 2 呢?
以及應該位在何處宣告始正確得宜?
敬請指教,謝謝您!
With ActiveChart
.SetSourceData Source:=Range("統計圖表!$B$1:統計圖表!$B$" & totalRows & ", 統計圖表!$C$1:統計圖表!$F$" & totalRows)
'.SetSourceData Source:=Range(" 統計圖表!$C$1:統計圖表!$F$" & totalRows)
' .ChartType = xlStockVOHLC ' 股票圖 ( 會造成 記憶體不足 )
.ChartType = xlStockOHLC ' 股票圖
.SeriesCollection(1).AxisGroup = 1 ' ****************************************************************************************
.SeriesCollection.Add Source:=Range("統計圖表!$H$1:統計圖表!$J$" & totalRows)
.SeriesCollection(5).Name = "=統計圖表!$H$1"
.SeriesCollection(5).ChartType = xlLine
.SeriesCollection(6).Name = "=統計圖表!$I$1"
.SeriesCollection(6).ChartType = xlLine
.SeriesCollection(7).Name = "=統計圖表!$J$1"
.SeriesCollection(7).ChartType = xlLine
' .SeriesCollection(2).AxisGroup = 1 '****************************************************************************************
With .ChartGroups(1)
.UpBars.Format.Fill.ForeColor.RGB = RGB(255, 0, 0)
.DownBars.Format.Fill.ForeColor.RGB = RGB(0, 32, 96)
End With
.SeriesCollection.Add Source:=Range("統計圖表!$G$1:統計圖表!$G$" & totalRows)
.SeriesCollection(8).Name = "=統計圖表!$G$1"
.SeriesCollection(8).ChartType = xlColumnClustered
.SeriesCollection(8).AxisGroup = 2 '****************************************************************************************
' With .ChartGroups(2) '注意, ChartGroup在插入成交量直條後變成 2 了
' .UpBars.Interior.Color = RGB(255, 0, 0)
' .DownBars.Interior.Color = RGB(0, 32, 96)
' End With
.Axes(xlCategory).CategoryType = xlCategoryScale
.Axes(xlCategory).TickLabels.NumberFormatLocal = "hh:mm"
.Axes(xlCategory).MajorTickMark = xlNone
.Axes(xlCategory).TickLabelPosition = xlLow
.Axes(xlValue).TickLabels.NumberFormatLocal = "0_ " ' 代表物件的格式代碼。
End With
複製代碼
執行後,目前圖形變成如下之狀態:
[attach]10641[/attach]
作者:
c_c_lai
時間:
2012-4-24 21:43
回復
10#
GBKEE
這些觀念說明對我的確非常有幫助,
上頭我有一些撰寫認知上的瓶頸,請再幫我解惑吧!
謝謝您!
作者:
GBKEE
時間:
2012-4-25 08:04
回復
12#
c_c_lai
在圖表中 數列數大於2才可以指定副座標軸( Y座標)
AxisGroup 屬性XlAxisGroup 可以是這些 XlAxisGroup 常數之一。
xlPrimary 1 ( X座標 )
xlSecondary 2 ( Y座標)
For Each E In ActiveSheet.Shapes
If InStr(E.Name, "Option Button") Then
If E.OLEFormat.Object.Value = 1 Then 副座標 = E.TopLeftCell(1, 0)
End If
Next
' 以上程式碼的目的在尋找 指定為 副座標 數列 的名稱
For xi = 1 To .SeriesCollection.Count
With .SeriesCollection(xi)
' If .Name = "成交量" And .Parent.SeriesCollection.Count > 1 Then .AxisGroup = 2
If .Name = 副座標 And .Parent.SeriesCollection.Count > 1 Then .AxisGroup = 2
.Border.ColorIndex = Int(55 * Rnd) + 1 '亂數產生數列底色
.Border.Weight = xlThin
.Border.LineStyle = xlContinuous
.MarkerStyle = xlNone
.MarkerBackgroundColorIndex = xlNone
.MarkerForegroundColorIndex = xlNone
.MarkerStyle = xlNone
.Smooth = False
.MarkerSize = 2
.Shadow = False
End With
Next
複製代碼
作者:
alexliou
時間:
2012-4-25 08:21
本帖最後由 alexliou 於 2012-4-25 08:24 編輯
回復
11#
c_c_lai
1. 先提醒一下
.SeriesCollection.Add Source:=Range("統計圖表!$H$1:統計圖表!$J$" & totalRows)
.SeriesCollection.Add Source:=Range("統計圖表!$G$1:統計圖表!$G$" & totalRows)
這兩行的$H$1和$G$1 要改為 $H$2和$G$2, 要不然會造成和股價資料的不Match
C2會對應到H1和G1
這是因為用 .SeriesCollection.Add 方法時, 它不會幫你考慮到標題列
2. 在這個問題裡, 總共有三個 ChartGroups
第一個是股價開高收低的 漲跌圖 (其實也是折線圖的延伸)
第二個是5MA, 20MA, 60MA的折線圖
第三個是成交量的直條圖
(在成交量直條圖加入後, 直條圖變chartgroups(1), 漲跌圖變chartgroups(2), 折線圖變chartgroups(3),
我猜測 Excel給不同的圖形Type指定不同的優先順序)
如果漲跌圖和折線圖如果能共用一個數值座標軸, 而成交量用副座標軸, 那這個問題就算完美解決了
但我試了幾次, 漲跌圖組一定要獨用一個數值座標軸 (把別的圖組指定使用漲跌圖組的座標軸都會發生錯誤訊息)
所以均線圖組只能和成交量圖組共用一個座標軸
但這兩組資料的數值大小差異很大
而且均線圖組的座標軸刻度還要和漲跌圖組的座標軸刻度一樣 (看起來才有意義)
在這些限制條件下, 單用EXCEL的chart功能, 目前我找不出完美的解決方法
3. 另一個方法是把它拆成兩個圖, 漲跌和均線在一個圖上, 成交量在一個圖上, 然後把兩個圖上下連在一起
作者:
c_c_lai
時間:
2012-4-25 08:54
回復
13#
GBKEE
回復
14#
alexliou
謝謝兩位的指導與幫忙,到目前為止,對於圖形的表達也有更深層地體會,
事後我會再反覆練習及捉摸體會,再次向兩位說聲 "感激兩位先進"!
作者:
alexliou
時間:
2012-4-26 16:23
[attach]10689[/attach]我嘗試把兩個圖表連在一起
作者:
c_c_lai
時間:
2012-4-26 17:24
回復
17#
alexliou
ActiveSheet.Shapes(chartname).Left = Cells(xRow + cHeight, yCol).Left
ActiveSheet.Shapes(chartname).Top = Cells(xRow + cHeight, yCol).Top
這樣的銜接方式蠻不錯的,不僅密合又美觀,再加上
.Axes(xlValue, xlPrimary).MinimumScale = Int(sMin / 10) * 10
.Axes(xlValue, xlPrimary).MaximumScale = Int(sMax / 10) * 10
.Axes(xlValue, xlSecondary).MinimumScale = .Axes(xlValue, xlPrimary).MinimumScale
.Axes(xlValue, xlSecondary).MaximumScale = .Axes(xlValue, xlPrimary).MaximumScale
的左右對稱,實在太感謝您有這樣的 Idea!
作者:
konantw
時間:
2012-4-26 21:54
這個也是我一直想了解的, 看看大家是如何解決的
作者:
ethan.tpe
時間:
2012-5-21 21:25
先收下慢慢研究, 感謝幾位大大 解了小弟的困惑
作者:
davidliu9116
時間:
2012-9-27 11:37
非常好的參考
感謝分享
作者:
barrykuo
時間:
2013-4-4 09:25
本帖最後由 GBKEE 於 2013-9-5 11:22 編輯
對於
c_c_lai
GBKEE
alexliou
的圖形合併討論很想學習,小學生的我沒法下載來觀摩,是否可以E-mail
作者:
barrykuo
時間:
2013-5-5 11:25
回復
21#
barrykuo
今天上網查一下xlStockVOHLC是什麼東東?
原來是這樣的意思。
xlStockVOHLC 91 成交量-開盤-最高-最低-收盤股價圖
一步一步學習,謝謝各位高手大大指導!
謝謝c_c_lai大大電子郵件的文件。
下面是XlChartType的說明
http://social.msdn.microsoft.com/Forums/zh-TW/232/thread/f703a4f2-ebe9-4e05-b9bb-5c9955881971
Excel 開發人員參考資料
XlChartType 列舉 指定圖表類型。
名稱 值 描述
xl3DArea -4098 立體區域圖
xl3DAreaStacked 78 立體堆疊區域圖
xl3DAreaStacked100 79 百分比堆疊區域圖
xl3DBarClustered 60 立體群組橫條圖
xl3DBarStacked 61 立體堆疊橫條圖
xl3DBarStacked100 62 立體百分比堆疊橫條圖
xl3DColumn -4100 立體直條圖
xl3DColumnClustered 54 立體群組直條圖
xl3DColumnStacked 55 立體堆疊直條圖
xl3DColumnStacked100 56 立體百分比堆疊直條圖
xl3DLine -4101 立體折線圖
xl3DPie -4102 立體圓形圖
xl3DPieExploded 70 分裂式立體圓形圖
xlArea 1 區域圖
xlAreaStacked 76 堆疊區域圖
xlAreaStacked100 77 百分比堆疊區域圖
xlBarClustered 57 群組橫條圖
xlBarOfPie 71 圓形圖帶有子橫條圖
xlBarStacked 58 堆疊橫條圖
xlBarStacked100 59 百分比堆疊橫條圖
xlBubble 15 泡泡圖
xlBubble3DEffect 87 立體泡泡圖
xlColumnClustered 51 群組直條圖
xlColumnStacked 52 堆疊直條圖
xlColumnStacked100 53 百分比堆疊直條圖
xlConeBarClustered 102 群組圓錐柱圖
xlConeBarStacked 103 堆疊圓錐柱圖
xlConeBarStacked100 104 百分比堆疊圓錐柱圖
xlConeCol 105 立體圓錐條圖
xlConeColClustered 99 群組圓錐條圖
xlConeColStacked 100 堆疊圓錐條圖
xlConeColStacked100 101 百分比堆疊圓錐條圖
xlCylinderBarClustered 95 群組圓柱圖
xlCylinderBarStacked 96 堆疊圓柱圖
xlCylinderBarStacked100 97 百分比堆疊圓柱圖
xlCylinderCol 98 立體圓條圖
xlCylinderColClustered 92 群組圓錐條圖
xlCylinderColStacked 93 堆疊圓錐條圖
xlCylinderColStacked100 94 百分比堆疊圓條圖
xlDoughnut -4120 環圈圖
xlDoughnutExploded 80 分裂式環圈圖
xlLine 4 折線圖
xlLineMarkers 65 含有資料標記的折線圖
xlLineMarkersStacked 66 含有資料標記的堆疊折線圖
xlLineMarkersStacked100 67 含有資料標記的百分比堆疊折線圖
xlLineStacked 63 堆疊折線圖
xlLineStacked100 64 百分比堆疊折線圖
xlPie 5 圓形圖
xlPieExploded 69 分裂式圓形圖
xlPieOfPie 68 子母圓形圖
xlPyramidBarClustered 109 群組金字塔柱圖
xlPyramidBarStacked 110 堆疊金字塔柱圖
xlPyramidBarStacked100 111 百分比堆疊金字塔柱圖
xlPyramidCol 112 立體金字塔條圖
xlPyramidColClustered 106 群組金字塔條圖
xlPyramidColStacked 107 堆疊金字塔條圖
xlPyramidColStacked100 108 百分比堆疊金字塔條圖
xlRadar -4151 雷達圖
xlRadarFilled 82 填滿式雷達圖
xlRadarMarkers 81 含有資料標記的雷達圖
xlStockHLC 88 最高-最低-收盤股價圖
xlStockOHLC 89 開盤-最高-最低-收盤股價圖
xlStockVHLC 90 成交量-最高-最低-收盤股價圖
xlStockVOHLC 91 成交量-開盤-最高-最低-收盤股價圖
xlSurface 83 立體曲面圖
xlSurfaceTopView 85 曲面圖 (俯視)
xlSurfaceTopViewWireframe 86 曲面圖 (俯視、只顯示線條)
xlSurfaceWireframe 84 立體曲面圖 (只顯示線條)
xlXYScatter -4169 散佈圖
xlXYScatterLines 74 含折線的散佈圖
xlXYScatterLinesNoMarkers 75 含折線但沒有資料標記的散佈圖
xlXYScatterSmooth 72 帶有平滑線的散佈圖
xlXYScatterSmoothNoMarkers 73 帶有平滑線但沒有資料標記的散佈圖
作者:
lolomonster
時間:
2014-5-22 13:00
感謝大大的分享&討論,正好遇上這個問題。
在舊版本2003 似乎可以直接指定對應的坐標軸,新版的無法....
作者:
lolomonster
時間:
2014-5-22 13:07
回復
16#
alexliou
不好意思,我權限不足,是否能麻煩您文字分享呢? 謝謝
作者:
c_c_lai
時間:
2019-1-11 16:49
回復
25#
pkey1999
不太明瞭你的問題:
[attach]29939[/attach]
作者:
c_c_lai
時間:
2019-1-13 07:23
回復
27#
pkey1999
能否附上你的襠案?否則無從進入了解。
作者:
pkey1999
時間:
2019-1-13 10:55
檔案凌亂 還不會更改
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)