VBA:告诉两个具有相同名称的图表吗?

时间:2019-05-15 12:32:13

标签: excel vba

我正在处理一个经过很多手的文件。我需要的一张图表名为“ Dummy_1”;不幸的是,另一个图表具有相同的名称。所以ws.ChartObjects("Dummy_1").Copy给了我错误的答案。

有没有办法区分两者?还是总的来说,除了名称以外,还有没有其他方法可以定位图表?我知道我可以按索引选择它,但这并不是我所说的“目标”。是否有可能选择最接近某个单元格的图表?

1 个答案:

答案 0 :(得分:1)

您可以确定哪个图表最接近目标位置,例如:

Dim ch As ChartObject, chr As Long, chc As Long, r As Long, c As Long, chin As Long, locr As Long, locc As Long
r = 24  'row 24, target
c = 11  'column k, target
For Each ch In ActiveSheet.ChartObjects
    chr = ch.TopLeftCell.Row
    chc = ch.TopLeftCell.Column
    If Sqr((r - chr) ^ 2 + (c - chc) ^ 2) < Sqr((r - locr) ^ 2 + (c - locc) ^ 2) Or locr = 0 Then
        locr = chr
        locc = chc
        chin = ch.Index
    End If
Next ch
Debug.Print chin

您可以使用图表索引(下巴)进行复制:

activesheets.chartobjects(chin).activate
activechart.parent.copy