我对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
答案 0 :(得分:0)
您可以返回图表对象的TopLeftCell
和BottomRightCell
以及这些单元格中的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