Starting off-manually selecting the data
确定。我将解释我想要实现的目标......我有一个数据图表,我希望使用列D和E中的数据绘制带有标记的折线图,不包括标题作为x轴数据上的点和列G到L作为y轴上的点。我正在使用录制宏来查看手动选择数据的代码,如步骤1所示。虽然最后一行是32,如当前宏所述,我想改变它,以便它能够计算出最后一行本身...使用end(x1down)函数。
codes obtained by recording macro when inserting line graph with markers
Range("D2:E32,G2:L32").Select
Range("G2").Activate
Source:=Range("Sheet1!$D$2:$E$32,Sheet1!$G$2:$L$32" )
那么如何通过更改上面的这3行代码来实现我的目标呢?此时,范围指定为D2:E32,G2:L32,因为我手动定义了最后一行。那么我该如何重写它以包括.endx1down来覆盖两个部分中的多列,即... D2到E32和G2到L32。对于行Source:= .... etc也是如此。
答案 0 :(得分:0)
以下几行中的内容应该可以解决问题...
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
答案 1 :(得分:0)
我想这是在ChartWizard中使用的。在大多数情况下,执行此操作的方法是创建2个范围,一个用于值(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
希望这就是你想要的......