选择所选ChartObject周围的单元格

时间:2018-06-25 07:38:45

标签: vba excel-vba excel

我对VBA完全陌生,如果这是一个简单的问题,对不起。我目前遇到这个问题:我有一个工作表,其中包含约30个图形。问题在于底部的标题和源位于单元格中,而不是图形的一部分。公司在格式化“图形”区域时已考虑到这一点(存在公司范围内的标准格式宏)。我已经尝试了下面的代码段,但正如预期的那样,它仅选择实际的图形区域。有没有一种方法可以选择每个图形上方和下方的两行并进行迭代?

谢谢

Sub SelectAll()

    ActiveSheet.ChartObjects.Select

End Sub

编辑:这是我目前正在使用的,有问题的图表在T列和第9行中,因此变为负数不必担心。

   Sub SelectAll()

Worksheets("Real Estate").Activate
MsgBox ActiveSheet.ChartObjects("Chart 1").TopLeftCell.Address

    With ActiveSheet
        .Range(.ChartObjects("Chart 1").TopLeftCell.Offset(-2, 0), _
            .ChartObjects("Chart 1").BottomLeftCell.Offset(4, 0)).Select
        End With

End Sub

1 个答案:

答案 0 :(得分:0)

您可以返回图表对象的TopLeftCellBottomRightCell以及这些单元格中的OFFSET

例如:

ThisWorkbook.Worksheets("Sheet1").ChartObjects("Chart 1").BottomRightCell
ThisWorkbook.Worksheets("Sheet1").ChartObjects("Chart 1").TopLeftCell  

然后可以使用这两个单元格返回图表周围的范围:

Sub Test()

    With ThisWorkbook.Worksheets("Sheet1")
        .Range(.ChartObjects("Chart 1").TopLeftCell.Offset(-2, -2), _
            .ChartObjects("Chart 1").BottomRightCell.Offset(2, 2)).Select
    End With

End Sub