将图表排列成网格
在 Excel 中使用图表的常见工作是在单张纸上标准化多个图表的大小和布局。如果手动完成,你可以 ALT 在调整图表大小或移动图表时按住 粘贴到单元格边界。这适用于几个图表,但 VBA 方法更简单。
用于创建网格的代码
此代码将创建一个图表网格,从给定(顶部,左侧)位置开始,具有已定义的列数和已定义的常用图表大小。图表将按照创建顺序放置,并围绕边缘以形成新行。
Sub CreateGridOfCharts()
Dim int_cols As Integer
int_cols = 3
Dim cht_width As Double
cht_width = 250
Dim cht_height As Double
cht_height = 200
Dim offset_vertical As Double
offset_vertical = 195
Dim offset_horz As Double
offset_horz = 40
Dim sht As Worksheet
Set sht = ActiveSheet
Dim count As Integer
count = 0
'iterate through ChartObjects on current sheet
Dim cht_obj As ChartObject
For Each cht_obj In sht.ChartObjects
'use integer division and Mod to get position in grid
cht_obj.Top = (count \ int_cols) * cht_height + offset_vertical
cht_obj.Left = (count Mod int_cols) * cht_width + offset_horz
cht_obj.Width = cht_width
cht_obj.Height = cht_height
count = count + 1
Next cht_obj
End Sub
几个图表的结果
这些图片显示了图表的原始随机布局以及运行上述代码的结果网格。