2013-08-12 143 views
6

我想在不知道图表编号的情况下使用VBA在Excel表格中选择随机图表,因为生成的图表总是更改编号。任何人都可以帮忙吗?是否可以选择图表而不参考图表编号?我想更改活动图表的图表名称。在不参考图表编号的情况下选择图表

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

而不是由对骂图表,你需要通过指数来称呼它:'ActiveSheet.ChartObjects(1).Activate'为一日一中'Activesheet'。将1改为随机数会给你随机参考。 –

+0

如果你想活动图表,使用'Selection.Name =“...”' –

+0

感谢KazJaw和LS_dev。我需要这个的原因是因为我的图表总是更新,其名称发生更改,因此我无法获得修复引用名称。但是,ActiveSheet.ChartObjects(1).Activate工作得很好,它随机选择。非常感谢!终于解脱了。 – user2640906

回答

1

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

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 
相关问题