2014-10-30 1 views
-1

Я извлек значения каждой ячейки из таблицы в текстовом документе, и я создал диаграммы на основе этих значений. Графики в порядке.VBA Вставка диаграммы в том же положении на каждой странице

Однако он сохраняет вставку на первой странице. Кто-нибудь знает, как я могу вставить свою диаграмму в одну позицию на каждой странице?

Слово документ, сгенерированный слиянием. Это вызовет проблему?

Кроме того, доза любой знает, как вставить диаграмму в ячейку таблицы?

Dim pge As Page 
Dim i As Integer 
i = 3 
Dim j As Integer 
j = 1 

For peg = 1 To Selection.Information(wdNumberOfPagesInDocument) 
     Dim tTable As Table 

     Set tTable = ActiveDocument.Tables(i) 
     Set cTable = ActiveDocument.Tables(j) 


     Dim wChart As Chart 
     Dim chartWorkSheet As Excel.Worksheet 
     Dim ThisYrSumCon As Integer 
     Dim ThisYrWinCon As Integer 
     Dim PreYrSumCon As Integer 
     Dim PreYrWinCon As Integer 
     Dim BefPreYrSumCon As Integer 
     Dim BefPreYrWinCon As Integer 

     '• 
     ThisYrSumCon = CInt(Left(tTable.Cell(2, 2).Range.Text, Len(tTable.Cell(3, 2).Range.Text))) 
     ThisYrWinCon = CInt(Left(tTable.Cell(3, 2).Range.Text, Len(tTable.Cell(3, 2).Range.Text) - 1)) 
     PreYrSumCon = CInt(Left(tTable.Cell(2, 3).Range.Text, Len(tTable.Cell(3, 2).Range.Text))) 
     PreYrWinCon = CInt(Left(tTable.Cell(3, 3).Range.Text, Len(tTable.Cell(3, 2).Range.Text))) 
     BePreYrSumCon = CInt(Left(tTable.Cell(2, 4).Range.Text, Len(tTable.Cell(3, 2).Range.Text))) 
     BePreYrWinCon = CInt(Left(tTable.Cell(3, 4).Range.Text, Len(tTable.Cell(3, 2).Range.Text))) 

     'MsgBox (ThisYrSumCon) 

     'cTable.Cell(3, 4).Range.Text = "test" 
     'cTable.Cell(12, 3).Range.Text = "test" 


     Set wChart = ActiveDocument.Shapes.AddChart.Chart 
     With wChart.Parent 
      .Top = 105 
      .Left = 205 
      .Width = 300 
      .Height = 150 
     End With 



     Set chartWorkSheet = wChart.ChartData.Workbook.WorkSheets(1) 
     chartWorkSheet.ListObjects("Table1").Resize chartWorkSheet.Range("A1:G2") 
     chartWorkSheet.Range("Table1[[#Headers],[Series 1]]").FormulaR1C1 = "Water Consumption Records" 
     wChart.ChartType = xlColumnClustered 


     chartWorkSheet.Range("A1").FormulaR1C1 = "" 
     chartWorkSheet.Range("B1").FormulaR1C1 = "2012 Summer" 
     chartWorkSheet.Range("C1").FormulaR1C1 = "2012 Winter" 
     chartWorkSheet.Range("D1").FormulaR1C1 = "2013 Summer" 
     chartWorkSheet.Range("E1").FormulaR1C1 = "2013 Winter" 
     chartWorkSheet.Range("F1").FormulaR1C1 = "2014 Summer" 
     chartWorkSheet.Range("G1").FormulaR1C1 = "2014 Winter" 

     chartWorkSheet.Range("A2").FormulaR1C1 = "" 
     chartWorkSheet.Range("B2").FormulaR1C1 = BePreYrSumCon 
     chartWorkSheet.Range("C2").FormulaR1C1 = BePreYrWinCon 
     chartWorkSheet.Range("D2").FormulaR1C1 = PreYrSumCon 
     chartWorkSheet.Range("E2").FormulaR1C1 = PreYrWinCon 
     chartWorkSheet.Range("F2").FormulaR1C1 = ThisYrSumCon 
     chartWorkSheet.Range("G2").FormulaR1C1 = ThisYrWinCon 

     wChart.ChartData.Workbook.Application.Quit 


     i = i + 5 
     j = j + 5 
     Selection.GoTo What:=wdGoToPage, Which:=lNextPage 


Next 

ответ

0

Лол, я так рад, что я могу ответить на мой собственный вопрос ... :)

Вот ответ для создания диаграммы базы на одной и той же таблицы в формате слов на каждой странице, и поставить диаграмму в одном месте на каждой странице.

i Integer для меня, чтобы найти ту же таблицу на каждой странице.

Dim Rng As Range, pg As Long 
Dim i As Integer 
i = 3 

With ActiveDocument 
    Set Rng = .Range(0, 0) 
    For pg = 1 To .ComputeStatistics(wdStatisticPages) 
     Set Rng = Rng.GoTo(What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=pg) 

     Rng.Collapse wdCollapseStart 

     Dim tTable As Table 
     Set tTable = ActiveDocument.Tables(i) 

     Dim wChart As Chart 
     Dim chartWorkSheet As Excel.Worksheet 
     Dim ThisYrSumCon As Integer 
     Dim ThisYrWinCon As Integer 
     Dim PreYrSumCon As Integer 
     Dim PreYrWinCon As Integer 
     Dim BefPreYrSumCon As Integer 
     Dim BefPreYrWinCon As Integer 

     ThisYrSumCon = CInt(Left(tTable.Cell(2, 2).Range.Text, Len(tTable.Cell(2, 2).Range.Text) - 1)) 
     ThisYrWinCon = CInt(Left(tTable.Cell(3, 2).Range.Text, Len(tTable.Cell(3, 2).Range.Text) - 1)) 
     PreYrSumCon = CInt(Left(tTable.Cell(2, 3).Range.Text, Len(tTable.Cell(2, 3).Range.Text) - 1)) 
     PreYrWinCon = CInt(Left(tTable.Cell(3, 3).Range.Text, Len(tTable.Cell(3, 3).Range.Text) - 1)) 
     BePreYrSumCon = CInt(Left(tTable.Cell(2, 4).Range.Text, Len(tTable.Cell(2, 4).Range.Text) - 1)) 
     BePreYrWinCon = CInt(Left(tTable.Cell(3, 4).Range.Text, Len(tTable.Cell(3, 4).Range.Text) - 1)) 

     Set wChart = .Shapes.AddChart(xlColumnClustered, 270, 105, 230, 150, Rng).Chart 
     Set chartWorkSheet = wChart.ChartData.Workbook.WorkSheets(1) 
     chartWorkSheet.ListObjects("Table1").Resize chartWorkSheet.Range("A1:G2") 
     chartWorkSheet.Range("Table1[[#Headers],[Series 1]]").FormulaR1C1 = "Water Consumption Records" 


     chartWorkSheet.Range("A1").FormulaR1C1 = "" 
     chartWorkSheet.Range("B1").FormulaR1C1 = "2012 Summer" 
     chartWorkSheet.Range("C1").FormulaR1C1 = "2012 Winter" 
     chartWorkSheet.Range("D1").FormulaR1C1 = "2013 Summer" 
     chartWorkSheet.Range("E1").FormulaR1C1 = "2013 Winter" 
     chartWorkSheet.Range("F1").FormulaR1C1 = "2014 Summer" 
     chartWorkSheet.Range("G1").FormulaR1C1 = "2014 Winter" 

     chartWorkSheet.Range("A2").FormulaR1C1 = "" 
     chartWorkSheet.Range("B2").FormulaR1C1 = BePreYrSumCon 
     chartWorkSheet.Range("C2").FormulaR1C1 = BePreYrWinCon 
     chartWorkSheet.Range("D2").FormulaR1C1 = PreYrSumCon 
     chartWorkSheet.Range("E2").FormulaR1C1 = PreYrWinCon 
     chartWorkSheet.Range("F2").FormulaR1C1 = ThisYrSumCon 
     chartWorkSheet.Range("G2").FormulaR1C1 = ThisYrWinCon 

     wChart.ChartData.Workbook.Application.Quit 

     i = i + 5 
     j = j + 5 

    Next 
End With 
Смежные вопросы