excel - 使用VBA创建图表并删除边框

标签 excel vba charts border borderless

我有一个宏,可以为三个数据系列创建折线图。 Excel 自动在图表周围添加边框,我鄙视这一点,但不知道如何删除它。我尝试过这些的变体:

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

这是一个示例数据集:

            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

这是我当前的代码:

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

最佳答案

将此行 ActiveSheet.Shapes("Chart 1").Line.Visible = msoFalse 更改为

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

关于excel - 使用VBA创建图表并删除边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38777012/

相关文章:

ios - 如何实时获取iOS应用商店前1000游戏榜单

r - 如何在 R 中为悬停文本配置千位分隔符?

excel - Excel 2013 VBA 代码中的特殊字符(字母 čćžšđ)

excel - 根据单元格值对整行着色

html - 解析 POI 中的 HTML 内容

enums - 如何在 Excel UDF 中使用枚举标识符

excel - 如何在id下获取html的内部文本?

vba - Excel VBA 尝试编辑组内形状的可见性

excel - 找到最后一个匹配后,如何使循环停止

javascript - 在 Javascript 中组合条形图和折线图