2010-11-08 60 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"根据您为表格测量的值设置适当的文本值。