Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.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_Charts - Fatal编程技术网

Excel 选择图表而不参考图表编号

Excel 选择图表而不参考图表编号,excel,vba,charts,Excel,Vba,Charts,我想在excel中使用VBA在不知道图表编号的情况下选择一个随机图表,因为生成的图表的编号总是变化的。有人能帮忙吗?是否可以在不参考图表编号的情况下选择图表?我想更改活动图表的图表名称 1 ActiveSheet.ChartObjects("Chart 409").Activate 2 ActiveSheet.Shapes("Chart 409").Name = "Chart 1" 3 ActiveSheet.ChartObjects("Chart 1").Activate 要选择

我想在excel中使用VBA在不知道图表编号的情况下选择一个随机图表,因为生成的图表的编号总是变化的。有人能帮忙吗?是否可以在不参考图表编号的情况下选择图表?我想更改活动图表的图表名称

1   ActiveSheet.ChartObjects("Chart 409").Activate
2   ActiveSheet.Shapes("Chart 409").Name = "Chart 1"
3   ActiveSheet.ChartObjects("Chart 1").Activate

要选择所有图表或随机图表,可以使用图表索引

Sub getcharts()

Dim ws As Worksheet
Dim ch As ChartObject
Set ws = ActiveSheet

cnt = ws.ChartObjects.Count
random_num = Application.WorksheetFunction.RandBetween(1, cnt)

ws.ChartObjects(random_num).Name = "NAM"  'The Random chart
For Each ch In ws.ChartObjects
    ch.Name = "Put the name of Chart here "
    'Or Do anything with you all the charts here
Next


End Sub

您需要按索引调用图表,而不是按名称调用图表:
ActiveSheet.ChartObjects(1)。激活
ActiveSheet
中的第一个。将1更改为随机数将为您提供随机引用。如果您想要活动图表,请使用
Selection.Name=“…”
感谢KazJaw和LS_dev。之所以需要此功能,是因为我的图表总是更新,其名称会更改,因此我无法获得固定的引用名称。然而,ActiveSheet.ChartObjects(1)激活work很好,它会随机选择。非常感谢!卡兹贾夫:写一个答案。。。