2016-08-04 21 views
1

Ich habe ein Makro, das ein Liniendiagramm für drei Datenreihen erstellt. Excel fügt automatisch einen Rahmen um das Diagramm hinzu, und ich verachte das, kann aber nicht herausfinden, wie es entfernt wird. Ich habe versucht, Variationen dieser:Erstellen Sie ein Diagramm mit VBA und entfernen Sie den Rahmen

  • ActiveSheet.Shapes ("Chart 1") Line.Visible = msoFalse
  • ChartArea.Border.LineStyle = xlNone

Dies ist ein Beispieldaten. set:

  Data1 Data2 Data3 
    2005 39  907  108 
    2006 439  341  490 
    2007 238  554  570 
    2008 882  112  134 
    2009 924  222  50 
    2010 155  550  754 
    2011 154  681  714 
    2012 235  186  917 

Und das ist mein aktueller Code:

Sub MakeCharts2() 

'save active sheet 
Dim ActSheet As Worksheet 
Set ActSheet = ActiveSheet 
'save sheetname as string 
Dim strSheetName As String 
strSheetName = ActiveSheet.Name 

ActSheet.Select 

'insert chart 
Range("A1:D9").Select 
ActiveSheet.Shapes.AddChart2(227, xlLine).Select 
ActiveChart.SetSourceData Source:=Range("A1:D9") 
ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="Chart_" & strSheetName 
ActiveChart.ChartArea.Select 

'add title to chart 
ActiveChart.ChartTitle.Select 
Selection.Caption = "=" & strSheetName 
' remove chart border: THIS IS WHERE I'M HAVING TROUBLE. 
ActiveChart.ChartArea.Select 
ActiveChart.Axes(xlValue).MajorGridlines.Select 
ActiveSheet.Shapes("Chart 1").Line.Visible = msoFalse 
Selection.Delete 



'add vertical axis 
ActiveChart.Axes(xlValue, xlPrimary).HasTitle = True 
ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Tons" 


End Sub 

Vielen Dank für Ihre Hilfe.

Antwort

1

Ändern Sie diese Zeile ActiveSheet.Shapes("Chart 1").Line.Visible = msoFalse mit

ActiveSheet.Shapes(ActiveChart.Parent.Name).Line.Visible = msoFalse

+0

Ich erhalte eine Fehlermeldung, „das Element mit dem angegebenen Namen wurde nicht gefunden.“ Irgendwelche Ideen, wie man es beheben kann? Danke – dataryne

+0

entfernen Sie diese Zeile "ActiveChart.Location" wo: = xlLocationAsNewSheet, Name: = "Chart_" & strSheetName' es erstellt ein Diagrammblatt. – cyboashu

+0

Das hat es behoben. Ich möchte eigentlich, dass das Diagramm auf einem neuen Blatt liegt, also habe ich diese Zeile bis zum Ende verschoben und es funktioniert jetzt wie ich gehofft habe. Vielen Dank. – dataryne