我正在处理一个经过很多手的文件。我需要的一张图表名为“ Dummy_1”;不幸的是,另一个图表具有相同的名称。所以ws.ChartObjects("Dummy_1").Copy
给了我错误的答案。
有没有办法区分两者?还是总的来说,除了名称以外,还有没有其他方法可以定位图表?我知道我可以按索引选择它,但这并不是我所说的“目标”。是否有可能选择最接近某个单元格的图表?
答案 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