2011-10-01 37 views
0

我工作的一個程序,可以生成包含表MS Word文件使用。創建圖表從普通MS Word表格

我想設計,將採取包含在MS Word文件,該表中的數據,並從中(棒圖,餅圖或折線圖)創建圖表的宏。

到目前爲止,我已經能夠:

  1. 選擇我需要的源數據表的一部分,
  2. 插入內嵌Excel工作表到MS Word文件。

但是,我無法將表格的選定部分粘貼到內聯工作表中以繪製圖表。

我怎樣才能做到這一點?

回答

4

下面的解決方案應該用於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文檔中。希望這可以幫助。