我正在开发一个可以生成包含表格的MS Word文件的程序。
我想设计一个宏来获取MS Word文件中包含的表格中的数据并从中创建图表(条形图,饼图或折线图)。
到目前为止,我已经能够:
但是,我无法将表格的选定部分粘贴到内联工作表中以绘制图表。
我该怎么做?
答案 0 :(得分:4)
下面的解决方案适用于Word 2007 SP2和Word 2010.它基于Peter Gruenbaum撰写的题为“在Word 2010中使用VBA创建图表”的精彩文章中的代码,可在此处阅读:
Creating Charts with VBA in Word 2010
重要的是要注意,要使此VBA代码正常工作,它应该包含对Microsoft Excel 14.0对象库的引用(对于那些不知道如何执行此操作的文章,上面链接的文章解释了如何添加这个参考详细)。
Sub MakeChartFromTable()
Dim myTable As Table
Dim salesChart As Chart
Dim chartWorkSheet As Excel.Worksheet
Dim x As Integer
Dim RowCount As Integer
Dim ColumnCount As Integer
Dim LastColumn As String
For Each myTable In ActiveDocument.Tables
myTable.Range.Copy
'Create Chart
Set salesChart = ActiveDocument.Shapes.AddChart.Chart
Set chartWorkSheet = salesChart.ChartData.Workbook.Worksheets(1)
'Determine size of table
RowCount = myTable.Rows.Count
ColumnCount = myTable.Columns.Count
'Determine spreadsheet column letter for last column of table
If ColumnCount < 26 Then
LastColumn = Chr(64 + 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 chartWorkSheet
.ListObjects("Table1").DataBodyRange.Delete
.ListObjects("Table1").Resize chartWorkSheet.Range("A1:" & LastColumn & RowCount)
.Range("A1:" & LastColumn & RowCount).Select
.Paste
End With
salesChart.ChartData.Workbook.Close
Next
End Sub
此代码从整个Word表格创建图表,因此需要合并您的代码以选择部分表格(如问题中所示)。还需要其他代码来将图表定位在Word文档中。希望这会有所帮助。