返回列表 上一主題 發帖

[發問] 動態修正匯入圖表的最後資料列之列數所延伸的問題

回復 40# GBKEE

TOP

回復 41# c_c_lai
沒2010版 哪我也沒法度了

TOP

回復 42# GBKEE
請教您:
Dim xRow(1 To 6), yCol(1 To 6), cWidth(1 To 6), cHeight(1 To 6), xText(1 To 6)
Dim Chart_Source(1 To 6)

這兩行是在宣告陣列 (Array) 嗎?  (1 To 6) ?  一維陣列嗎?
除了這等宣告方式外,還有何種方式表達?

TOP

回復 43# c_c_lai
  1. Option Explicit
  2. Sub Ex()
  3.     Dim xRow(), i As Integer
  4.     xRow = Array(1, 2, 3, 4)    'xRow() 是為動態陣列
  5.     For i = 0 To 3
  6.         MsgBox xRow(i)
  7.     Next
  8. End Sub
  9. Sub Ex1()
  10.     Dim xRow(4), i As Integer
  11.     'xRow(4) 是為靜態陣列
  12.     '最小可使用的陣列索引 預設為 0  可用  Option Base {0 | 1} 來改變 是0 或 1
  13.     '最大可使用的陣列索引=4
  14.     'xRow = Array(1, 2, 3, 4,5)  '無法一次給值 ,靜態陣列 須 一一指定值
  15.     xRow(0) = 1
  16.     xRow(1) = 2
  17.     xRow(2) = 3
  18.     xRow(3) = 4
  19.     xRow(4) = 5
  20.     For i = 0 To 4
  21.         MsgBox xRow(i)
  22.     Next
  23. End Sub
  24. Sub Ex2()
  25.     Dim xRow(4 To 8), i As Integer
  26.     'xRow(4 to 8) 是為靜態陣列
  27.     '設定: 最小可使用的陣列索引 =4 , 最大可使用的陣列索引 = 8   
  28.     'xRow = Array(1, 2, 3, 4,5)  '無法一次給值 ,靜態陣列 須 一一指定值
  29.     xRow(4) = 1               '
  30.     xRow(5) = 2                '
  31.     xRow(6) = 3
  32.     xRow(7) = 4
  33.     xRow(8) = 5
  34.     For i = 4 To 8
  35.         MsgBox xRow(i)
  36.     Next
  37. End Sub
複製代碼

TOP

本帖最後由 c_c_lai 於 2012-4-22 13:20 編輯

回復 44# GBKEE
皇天不辜有心人,終於找到為何型態不符了。
  1.             With .PlotArea                          ' 圖表的繪圖區
  2.                 .Top = 1
  3.                 .Left = 1
  4.                 .Width = cWidth
  5.                 .Height = cHeight
  6.                 .Interior.ColorIndex = xlNone
  7.             End With
複製代碼
問題出在 cWidth、以及 cHeight 兩個變數的宣告,它們起頭是宣告成 陣列型態的。
所以嘛!

  1.            With .PlotArea                          ' 圖表的繪圖區
  2.                 .Top = 16
  3.                 .Left = 1
  4.                 .Width = cWidth(xi)
  5.                 .Height = cHeight(xi)
  6.                 .Interior.ColorIndex = xlNone
  7.             End With
複製代碼
如此才對! 雖然是小地方,卻把老命快搞掉了!
如今再把他稍加修飾成我要的需求,我把正確的檔案亦一併附上,
可供有心向學的共修們一同來研習、討論。

還好骨頭沒散掉.rar (187.38 KB)



差點忘了向您說聲謝謝!
阿里牙豆!

TOP

回復 45# c_c_lai
這太粗心,還是你細心的找出來,
我查出 2003版  這錯誤:
在圖表: 圖表區, 繪圖區.等 有可指定 Left ,Top, Width  ,Height 的地方
都可以接受這陣列不用索引值 , 會比照 先前使用過的索引值  如下
With Sh.ChartObjects.Add(Sh.Cells(xRow(xi), yCol(xi)).Left, Sh.Cells(xRow(xi), yCol(xi)).Top, cWidth(xi), cHeight(xi)).Chart


TOP

回復 46# GBKEE
這是這個議題的最後一次提問:
Set Rng = .Range("A1").CurrentRegion
憑我個人的聰明才智,東瞄瞄西敲敲也實在看不出它的實際代表含義,
它在提示甚麼,它扮演的腳色是甚麼? 有何舉足輕重?
每次按 F1 時,其說明真有如聖經,有看沒懂。
謝謝您!

TOP

回復 47# c_c_lai
CurrentRegion 屬性 ,該物件代表目前的區域。目前區域是指以任意空白列及空白欄的組合為邊界的範圍。唯讀。
  1. ActiveCell.CurrentRegion.Select
複製代碼
如圖 四個儲存格任選一個  執行  這程式碼 看看有何變化如何

TOP

回復 45# c_c_lai
c_c_lai版大;你好…看了你的Excel圖表只有讚嘆…希望多多發表文章供我們學習…謝謝了~~
50 字節以內
不支持自定義 Discuz! 代碼

TOP

就是在這裏能學到很多東西,能人多神人更多
80 字節以內
不支持自定義 Discuz! 代碼

TOP

        靜思自在 : 真正的愛心,是照顧好自己的這顆心。
返回列表 上一主題