尝试制作一个忽略使用公式IFBLANK制作的空白单元格的动态图表

时间:2017-10-26 08:04:56

标签: excel vba excel-vba

我试图创建一个忽略使用公式IFBLANK制作的空白单元格的动态图表。要查找我当前正在使用的最后一行.END(xlUp)。但是由于公式,空白单元格实际上不是空白,因此在制作图表时不会忽略它。如何制作图表以便忽略这些单元格?图表是在一张纸上制作的,其中数据来自另一张纸。

代码:

Dim chtObj As ChartObject

Dim Calculation As Worksheet

lr = Worksheets("Calculation").Cells(Rows.Count, 1).End(xlUp).Row
lc = Worksheets("Calculation").Cells(2, Columns.Count).End(xlToLeft).Column
Set chtRng = Range(Cells(2, 1), Cells(lr, lc))

Set ChartArea = Range("b" & lr + 3 & ":j" & lr + 20)
Worksheets("Calculation").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

excel表的图片: enter image description here

IfBlank公式: enter image description here

2 个答案:

答案 0 :(得分:0)

您可以过滤范围中的所有空白,然后绘制图表以避免此问题。

P.S:考虑一下,

enter image description here

Sub test()
    With ActiveSheet.ChartObjects.Add _
         (Left:=100, Width:=375, Top:=75, Height:=225)
        .Chart.SetSourceData Source:=Sheets("Sheet1").Range(Range("D2").Value)
        .Chart.ChartType = xlLine
    End With
End Sub

答案 1 :(得分:0)

从图表的选择数据选项中,您可以处理图表中的隐藏或空单元格,以选择处理此类单元格的方式。这会解决您的问题吗?

enter image description here

如果只是继续你的桌子,直到你来到一个不是空格的单元格,请在设置初始值lr的行下面插入此代码:

Do While lr > 1 And Len(Trim(Worksheets("Calculation").Cells(lr, 1))) = 0
    lr = lr - 1
    Debug.Print lr
Loop

如果你将if语句更改为“”而不是“”,当你为真时,你也不需要Trim(想到它,我可以只比1而不是也是0。)