將圖表排列成網格

在 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

幾個圖表的結果

這些圖片顯示了圖表的原始隨機佈局以及執行上述程式碼的結果網格。

之前

StackOverflow 文件

StackOverflow 文件