调整大小和对齐工作簿中的所有图表
问题描述:
试图创建一个VBA子对齐和调整我的工作簿中的所有图表通过多个工作表,我相信我有一个大致的想法来调整大小,但不知道如何将它们对齐到某个柱。仍然相当新的练成,这里是我到目前为止的代码:调整大小和对齐工作簿中的所有图表
Sub AllChartAlign()
Dim works As Worksheet
For Each works In ActiveWorkbook.Worksheets
For i = 1 To 2 Step 1
With ActiveSheet.ChartObjects(i)
.Height = 234
.Width = 360
.Left = Range("Q:Q").Left
End With
Next i
Next works
End Sub
这仅适用于活动工作表,但不会通过所有的表圈。
答
您可以使用.Left属性进行列对齐。如果你想将它们对齐,以“C”柱,你可以使用:
Sub AllChartAlign()
Dim works As Worksheet
Dim Chrt as ChartObject
For Each works In ActiveWorkbook.Worksheets
For i = 1 To works.ChartObjects.Count
Set Chrt = works.ChartObjects (i)
With Chrt
.Height = 234
.Width = 360
.Left = Range("C:C").Left
End With
Next i
Next works
End Sub
编辑
如果要对齐图表从上到下以及你可以使用.TOP性质和用途以下内容:
Sub AllChartAlign()
Dim works As Worksheet
Dim Chrt as ChartObject
Dim ChrtHeight As Double
ChrtHeight = 234
For Each works In ActiveWorkbook.Worksheets
For i = 1 To works.ChartObjects.Count
Set Chrt = works.ChartObjects (i)
With Chrt
.Height = ChrtHeight
.Width = 360
.Top = ChrtHeight * (i - 1)
.Left = Range("C:C").Left
End With
Next i
Next works
End Sub
EDIT 2
(代码应现在的工作FO r工作表中的任意数量的图表,而不是考虑总是有2个图表)
查看更新的答案和评论:http://stackoverflow.com/a/38643389/3218398 – hstay