Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Excel Graph中,如何转换宏以选择多个数据列(如x和y)并停在空行下方?_Excel_Vba_Graph - Fatal编程技术网

在Excel Graph中,如何转换宏以选择多个数据列(如x和y)并停在空行下方?

在Excel Graph中,如何转换宏以选择多个数据列(如x和y)并停在空行下方?,excel,vba,graph,Excel,Vba,Graph,嗯。我将解释我正在努力实现的目标。。。我有一个数据图表,我想用D列和E列中的数据绘制一个带有标记的线图,不包括标题作为x轴数据上的点,G列到L列作为y轴上的点。我使用录制宏查看手动选择数据的代码,如步骤1所示。尽管如当前宏中所述,最后一行是32,但我想更改它,以便它能够使用end(x1down)函数计算出最后一行本身 那么,如何通过更改上述3行代码来实现我的目标呢?目前,范围被指定为D2:E32,G2:L32,因为我手动定义了最后一行。那么,我如何重写它以包含.endx1down以覆盖多个列的

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


那么,如何通过更改上述3行代码来实现我的目标呢?目前,范围被指定为D2:E32,G2:L32,因为我手动定义了最后一行。那么,我如何重写它以包含.endx1down以覆盖多个列的部分,即D2到E32和G2到L32。这对线源也是一样的:=..etc..

沿着下面的线应该可以做到这一点

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

以下几点应该可以做到这一点

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

我想这是在图表向导中使用的。在大多数情况下,这样做的方法是创建两个范围,一个用于图表的值(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

希望这是您想要的…

我想这是在图表向导中使用的。在大多数情况下,这样做的方法是创建两个范围,一个用于图表的值(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

希望这就是你想要的…

从最后一行开始的那行。。。上面将LastRow设置为通过R.End(xlDown)到达的行数。欢迎您使用该代码,但您需要根据自己的情况对其进行调整。从最后一行开始的行。。。上面将LastRow设置为通过R.End(xlDown)到达的行数。欢迎您使用该代码,但您需要根据自己的情况对其进行调整。