Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 更改选定图表的边框颜色_Excel_Vba_Excel Charts - Fatal编程技术网

Excel 更改选定图表的边框颜色

Excel 更改选定图表的边框颜色,excel,vba,excel-charts,Excel,Vba,Excel Charts,如果我录制Excel宏以更改图表的边框颜色,则VBA将返回 Sub change_bordercolor() With ActiveSheet.Shapes("Chart 1").Line .Visible = msoTrue .ForeColor.RGB = RGB(0, 0, 0) .Transparency = 0 End With End Sub 因此,我想编写代码来更改当前选定图表的边框颜色,而不是图

如果我录制Excel宏以更改图表的边框颜色,则VBA将返回

Sub change_bordercolor()
    With ActiveSheet.Shapes("Chart 1").Line
        .Visible = msoTrue
        .ForeColor.RGB = RGB(0, 0, 0)
        .Transparency = 0
    End With
End Sub
因此,我想编写代码来更改当前选定图表的边框颜色,而不是图表1,如下所示

Sub change_bordercolor()
    Selection.ShapeRange.Line.ForeColor.RGB = RGB(0, 0, 0)
End Sub

但这将返回438运行时错误。我需要在哪里更改以使用所选内容而不是图表1?

要更改活动图表的边框颜色,您必须已选择,您可以使用以下代码:

Sub Macro1()

If Application.ActiveChart Is Nothing Then Exit Sub


With ActiveSheet.Shapes(Replace(Application.ActiveChart.Name, ActiveSheet.Name & " ", "")).Line
    .Visible = msoTrue
    .ForeColor.RGB = RGB(0, 255, 0)
    .Transparency = 0
End With

End Sub
我已经设置好将边框颜色更改为绿色,但您可以根据需要进行调整。这就是它的工作原理:


它会更改活动选定图表的边框颜色。

以下是一种更简单的方法:

Sub ChangeBorderColor()
  If Not ActiveChart Is Nothing Then
    With ActiveChart.ChartArea.Format.Line
      .Visible = msoTrue
      .ForeColor.RGB = RGB(0, 0, 0)
      .Transparency = 0
    End With
  End If
End Sub

我发现选择图表比它的价值要麻烦得多,比正常情况下麻烦得多。选择问题。是否绝对有必要选择图表?在一张图表上运行代码?是的。我希望使用的选择。我的sub通过例如ActiveSheet.Shapes.AddChart2-1、xlXYScatter插入新图表。选择并执行一些微观管理,例如ActiveChart.SetElement msoElementChartTitleNone。我想在添加新图表时再添加一行以更改其边框颜色。谢谢。我可以再问一个吗?此代码从Application.ActiveChart.Name中引入了图表1部分,但是否需要在ActiveChart前面的应用程序?我有时会看到Application.ActiveSheet,有时只看到ActiveSheet,但我什么时候特别需要它呢?不,在这种情况下并不需要它。如果您正在使用不同的Excel实例,则只需要对象应用程序,而不是在本例中。我用它来提高效率和代码速度,但它不是必需的。非常感谢。我认为最简单的方法是ActiveChart.ChartArea.Format.Line.ForeColor.RGB=RGB0,0,0。