2017-10-26 1 views
0

erstellt werden Ich versuche, ein dynamisches Diagramm zu erstellen, das leere Zellen ignoriert, die mit Formel IFBLANK erstellt werden. Um die letzte Zeile zu finden, die ich gerade verwende .END (xlUp) .Row, aber weil die leeren Zellen aufgrund der Formel nicht wirklich leer sind, wird sie nicht ignoriert, wenn das Diagramm erstellt wird. Wie kann ich das Diagramm so machen, dass diese Zellen ignoriert werden? Das Diagramm wird in einem Blatt erstellt, in dem die Daten von einem anderen Blatt stammen.Versuchen, ein dynamisches Diagramm zu machen, das leere Zellen ignoriert, die mit Formel IFBLANK

Code:

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 

Bilder von Excel-Blatt: enter image description here

IfBlank Formel: enter image description here

Antwort

0

Sie können alle Rohlinge aus dem Bereich auswählen, und dann das Diagramm plotten zu vermeiden dieses Problem.

PS: Betrachten Sie diese,

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 
+0

Danke für die Eingabe! Entschuldigung, wenn ich nicht klar genug war, aber ich möchte die Zellen ignorieren, so dass sie nicht im Diagramm enthalten sind. Mit Ihrer Formel ist es immer noch enthalten –

+0

Danke nochmal. Aber da die Zelle nicht wirklich leer ist, sondern nur leer erscheint, ist sie immer noch bei der Verwendung der Counta-Funktion enthalten:/ –

+0

@ FrederikBaungårdChristiansen Aktualisiert die Formel jetzt versuchen Sie es. –

0

Wählen Sie aus der Daten Wahl für Ihr Diagramm, können Sie auf die Handhabung von versteckten oder leere Zellen in Ihrem Diagramm gehen, wie solche Zellen zu wählen sind abgewickelt. Behebt das dein Problem?

enter image description here

Für Ihre Tabelle nur fortgesetzt, bis Sie auf eine Zelle kommen, die kein Raum ist, legen Sie den Code unterhalb der Zeile, wo Sie den Anfangswert von lr gesetzt:

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

Wenn Du änderst die if-Anweisung, um "" anstelle von "" zurückzugeben, wenn es wahr ist, du wirst weder die Trim brauchen (um darüber nachzudenken, ich könnte auch nur mit 1 anstatt mit 0 verglichen werden).

+0

Hallo Eirikdaude, Vielen Dank für Ihre Eingabe, aber ich muss das Diagramm mit Makros erstellen, also muss ich es in der VBA implementieren –

+0

@ FrederikBaungårdChristiansen Haben Sie versucht zu erfassen, was passiert, wenn Sie diese Werte mit dem Makro-Recorder ändern ? Ich vermute, es ist nur eine Eigenschaft, die Sie für die Dataseries ändern müssen, wenn der Ansatz anders funktioniert. – eirikdaude

+0

Guter Punkt mit der Aufnahme des Makros, aber die Einstellung ist bereits die gleiche wie in Ihrem Bild und nichts passiert, wenn ich versuche, es zu ändern. –

Verwandte Themen