2010-11-08 65 views
0

我正在構建一個宏來繪製由COGNOS創建的報表。不幸的是,這些報告是由另一個團隊提供的。VBA Excel中的數組變量

圖表的數據來自Excel,但標題可能會更改每個報表和數據源的數量也會更改。

這意味着在一週內星期一至星期五的數據可能包含6個來源,例如。列A至G(週一至週五)和行1至6

下一個數據表由COGNOS 2行產生,例如:行8

但下週有8種數據源,所以該表是更長的時間,所述第二表是在第10行

使用陣列我可以修復圖表從報頭收集有數據每個表的單元格放置在excel的哪個位置?

+0

你能以視覺形式給出一個例子嗎?數據範圍每次都會改變嗎? – shahkalpesh 2010-11-08 18:30:11

+0

您的描述中存在一些不一致之處。例如(週一至週五)= 5個設計,並使用列(A-G)= 7列和6行。請檢查您的問題併發布屏幕截圖樣本。 – 2010-11-09 16:45:52

回答

0

使用此功能可計算需要繪製的數據行。將它傳遞給表中的第一個元素,它將重新計算行數。

Public Function CountRows(ByRef r As Range) As Integer 
    If IsEmpty(r) Then 
     CountRows = 0 
    ElseIf IsEmpty(r.Offset(1, 0)) Then 
     CountRows = 1 
    Else 
     CountRows = r.Worksheet.Range(r, r.End(xlDown)).Rows.count 
    End If 
End Function 

要選擇多行,COLS使用Range("A2").Resize(20,8)例如從「A2」擴大範圍,包括20行和8列。剩下的就是通過對行和列進行計數併爲圖表選擇適當的值來編程。請注意,最好使用RC樣式設置圖表系列的.XSeriesYSeries屬性。例如:.YSeries="='Sheet1'!R2C3:R101C3"根據您爲表格測量的值設置適當的文本值。