Word VBA在每页上创建图表

问题描述 投票:1回答:1

我在学区工作。我们需要写信给没有学生的父母。Excel文档中已使用数据来创建邮件合并。我从Excel文档中将3个字段拉到“隐藏表”中学生姓名,缺勤中位数和学生缺勤情况。隐藏的表格只是无边界表格,每页上都带有白色文本。 (白色,因此不会打印)该表用于使用以下代码生成图表;

Dim tblOne As Table
Dim cht As Chart
Dim chtWkSht As Excel.Worksheet
Dim X As Integer
Dim RowCount As Integer
Dim ColumnCount As Integer
Dim LastColumn As String



For Each tblOne In ActiveDocument.Tables
    tblOne.Range.Copy
   'Create Chart
    Set cht = ActiveDocument.InlineShapes.AddChart.Chart


    Set chtWkSht = cht.ChartData.Workbook.Worksheets(1)   
'Set table size
    RowCount = tblOne.Rows.Count
    ColumnCount = tblOne.Columns.Count
'Determine Spreadsheet column letter for lastColumnTable
    If ColumnCount < 26 Then
        LastColumn = Chr(62 + ColumnCount)
    Else
     LastColumn = Chr(Int(ColumnCount / 26) + 64) & Chr((ColumnCount Mod 26) + 64)
   End If
 'Resize chart data area to table size and paste table data
    With chtWkSht
        .ListObjects("Table1").DataBodyRange.Delete
        .ListObjects("Table1").Resize chtWkSht.Range("A1:" & LastColumn & RowCount)
        .Range("A1:" & LastColumn & RowCount).Select
       .Paste
    End With

    cht.ChartData.Workbook.Close
Next

这确实为每个学生生成了一个图表,但是它在第一页上生成了所有图表。我需要图表显示在每个学生对应的页面上。我是VBA的新手。我不确定执行此操作的最佳方法是否是使用书签在表格中创建图表?

或使用“隐藏表”中的数据更新每页上的现有图表。

无论哪种情况,我都不知道如何处理。我所知道的是,将隐藏表与邮件合并选项一起使用已创建了具有针对每个学生的正确信息的单独表。这就是我采用这种方法的原因。

任何建议/帮助将不胜感激,因为替代方法是手动更新这些建议/帮助。

谢谢

charts word-vba word mailmerge
1个回答
0
投票

Word没有页面对象,它们的显示是即时生成的。要创建新页面,请在每次插入图表的末尾插入一个分页符:

Selection.InsertBreak Type:=wdPageBreak
© www.soinside.com 2019 - 2024. All rights reserved.