excel - 从图表图例中删除系列并在 excel vba 中设置轴范围

标签 excel vba

我正在使用 VBA 并尝试安装图表并尝试使 y 轴具有年份作为值。然而,一个名为系列 17 的新系列出现在传说中。无论如何要从图例中删除它,但不将其作为 x 轴值删除。我已经尝试过“MyChartObj.Chart.SeriesCollection(17).Delete”,但这会将其作为 y 轴值删除。

也有人知道如何设置轴上的值范围。例如,我希望图表介于 0 和 100 之间,而不是当前正在发生的 0 和 120 之间。

这是我的代码:

Sub orange_weightings_chart()

Dim MyChtObj As ChartObject
Dim Sht1 As Worksheet
Dim Sht2 As Worksheet
Dim Sht1Name As String
Dim Sht2Name As String

Set Sht2 = Worksheets("Orange Weightings")
Set Sht1 = Worksheets("Weightings Table")
Sht1Name = Sht1.Name
Sht2Name = Sht2.Name
Set MyChtObj = Sht1.ChartObjects.Add(100, 100, 500, 500)

Set a = Sht1.Range("A2", Sht1.Range("A2").End(xlToRight))
Set b = Sht1.Range("A3", Sht1.Range("A3").End(xlToRight))
Set c = Sht1.Range("A4", Sht1.Range("A4").End(xlToRight))
Set d = Sht1.Range("A5", Sht1.Range("A5").End(xlToRight))
Set e = Sht1.Range("A6", Sht1.Range("A6").End(xlToRight))
Set f = Sht1.Range("A7", Sht1.Range("A7").End(xlToRight))
Set g = Sht1.Range("A8", Sht1.Range("A8").End(xlToRight))
Set h = Sht1.Range("A9", Sht1.Range("A9").End(xlToRight))
Set i = Sht1.Range("A10", Sht1.Range("A10").End(xlToRight))
Set j = Sht1.Range("A11", Sht1.Range("A11").End(xlToRight))
Set k = Sht1.Range("A12", Sht1.Range("A12").End(xlToRight))
Set l = Sht1.Range("A13", Sht1.Range("A13").End(xlToRight))
Set m = Sht1.Range("A14", Sht1.Range("A14").End(xlToRight))
Set n = Sht1.Range("A15", Sht1.Range("A15").End(xlToRight))
Set o = Sht1.Range("A16", Sht1.Range("A16").End(xlToRight))
Set p = Sht1.Range("A17", Sht1.Range("A17").End(xlToRight))
Set InputData = Union(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p)

With MyChtObj.Chart
    .ChartType = xlBarStacked
    .SetSourceData InputData
    .PlotBy = xlRows
    .HasTitle = True
    .ChartTitle.Text = "Original Forecast Parameter Weightings"
    .HasLegend = True
    .SeriesCollection.NewSeries.XValues = Sht1.Range("B1", Sht1.Range("B1").End(xlToRight))
End With

With MyChtObj
    .Top = Sht2.Range("E15").Top
    .Left = Sht2.Range("E15").Left
    .Width = 1200
    .Height = 380
End With

End Sub

提前致谢,

最大限度

最佳答案

要仅从图例(而不是图表)中删除 Series 17,并将图表轴设置为 0 到 100,请使用以下代码:

With MyChtObj.Chart
    .Legend.LegendEntries(17).Delete  ' delete the legend only

    .Axes(xlValue).MinimumScale = 0 ' set minimum value
    .Axes(xlValue).MaximumScale = 100  ' set maximum value
End With 

关于excel - 从图表图例中删除系列并在 excel vba 中设置轴范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42116026/

相关文章:

excel - Worksheet.UsedRange.Rows.Count 返回错误结果

excel - 以编程方式创建验证列表

html - VBA 从 HTML 中获取数字

ms-access - 如何通过 VBA 在 Access 报表上创建控件?

excel - 逐行比较Excel中的两列?

excel - Access VBA中的转义双引号 - INSERT INTO ... SELECT

Excel VBA 宏 - 在循环中连接

vba - Excel VBA : Can I query external excel without opening the target file?

vba - 在 VBA 中隐藏用户窗体以便处理数据

excel - Excel电子表格中基于当前日期的单元格数总和