0
我工作的一個程序,可以生成包含表MS Word文件使用。創建圖表從普通MS Word表格
我想設計,將採取包含在MS Word文件,該表中的數據,並從中(棒圖,餅圖或折線圖)創建圖表的宏。
到目前爲止,我已經能夠:
- 選擇我需要的源數據表的一部分,
- 插入內嵌Excel工作表到MS Word文件。
但是,我無法將表格的選定部分粘貼到內聯工作表中以繪製圖表。
我怎樣才能做到這一點?
我工作的一個程序,可以生成包含表MS Word文件使用。創建圖表從普通MS Word表格
我想設計,將採取包含在MS Word文件,該表中的數據,並從中(棒圖,餅圖或折線圖)創建圖表的宏。
到目前爲止,我已經能夠:
但是,我無法將表格的選定部分粘貼到內聯工作表中以繪製圖表。
我怎樣才能做到這一點?
下面的解決方案應該用於Word 2007 SP2和Word 2010年。它的工作是根據在題爲「在Word 2010中創建一個帶有VBA圖表」由彼得Gruenbaum一個夢幻般的文章中發現的代碼可以在這裏閱讀:
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文檔中。希望這可以幫助。