在Excel图表中,如何转换macros以select多个数据列作为x和y来停止在空行之下?

开始closures – 手动select数据

好。 我将解释我正在努力实现的目标…我有一个数据图表,我想绘制一个带有标记的线图,使用列D和E中的数据,不包括标题作为x轴数据上的点和列G到L作为y轴上的点。 我正在使用录制macros来查看代码以手动select数据,如步骤1所示。 虽然最后一行是32,如当前macros所述,但我想改变它,以便能够使用end(x1down)函数来计算最后一行。

用标记插入线图时通过loggingmacros获得的代码

Range("D2:E32,G2:L32").Select Range("G2").Activate Source:=Range("Sheet1!$D$2:$E$32,Sheet1!$G$2:$L$32" ) 

那么如何通过改变这三行代码来实现我的目标? 此刻,范围被指定为D2:E32,G2:L32,因为我手动定义了最后一行。 那么如何重写这个以包含.endx1down来覆盖部分的多列,即… D2到E32和G2到L32。 这也是相同的线来源:= ….等。

下面的东西应该做的伎俩…

 Dim Ws as Worksheet, R as Range, LastRow as long Set Ws = ' some worksheet, maybe the active worksheet, I don't know the context. Set R = Ws.Range("G2") ' for example - any row inside your data except the last. Any column containing contiguous columns down to the one you want. LastRow = R.End(xlDown).Row 

我想这是在ChartWizard中使用。 在大多数情况下,执行此操作的方法是创build2个范围,一个用于值(y)轴,一个用于图表的类别(x)轴。 叫他们Rx和Ry。 然后你把他们的联盟(称之为Ru)并作为来源喂:= Ru …

 Dim Rx as Range, Ry as Range, Ru as Range Set Rx = ' some range for the x axis. Set Ry = ' soem range(s) for the value axis. Set Ru = Union(Rx, Ry) With YourChart .ChartWizard Source:=Ru, ' etc. etc End With 

希望这是你想要的…