使用宏和.End函数

时间:2017-10-23 08:42:15

标签: excel vba excel-vba

我试图根据最后一行和一列制作动态图表。当我必须定义图表范围时,会出现问题。它标识最后一行和列,但是当我尝试设置图表范围时,最后一列等于完整的电子表格。

代码:

Sub Spiderweb_test()
'
'Spiderweb_test Macro
    Dim chtObj As ChartObject

    lr = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
    lc = ActiveSheet.Cells(4, Columns.Count).End(xlToLeft).Column

    Set chtRng = Range("A4:lc" & lr)
    Set ChartArea = Range("a" & lr + 3 & ":f" & lr + 15)

    ActiveSheet.Shapes.AddChart2(317, xlRadarMarkers).Select
    ActiveChart.SetSourceData Source:=chtRng

    Set chtObj = ActiveChart.Parent
    chtObj.Top = ChartArea.Top
    chtObj.Left = ChartArea.Left
    chtObj.Height = ChartArea.Height
    chtObj.Width = ChartArea.Width
End Sub

输出图片:

Picture of output

1 个答案:

答案 0 :(得分:0)

使用:

Set chtRng = Range(Cells(4, 1), Cells(lr, lc))

因为lc实际上是列的编号,而不是字母。 因此,图表范围未正确设置。