2012-06-26 101 views
0

我有幾頁MS-Word文檔,其中每幾段都有一個新的段落號。見下面的例子。另外,在MS-Excel或CSV文件,我有兩個信息欄 - 款數以及是否應當強調與否:基於段落組編號列表突出顯示MS-Word文檔中的段落?

Paragraph Number, Highlight? 

1, True 
2, False 
3, True 

什麼是與所列段落組結束了最簡單的方法如上面在Word文檔中突出顯示的控制列表中的「True」?

All about fruits 

Apples 

Paragraph group 1 

Each person shall eat one apple a day to keep the doctor away. 

Note: Apples are a red fruit. 

Apples have been growing for a long time. Sometimes they fall off the tree by themselves. Sometimes you have to pick them. 

Pears 

Paragraph group 2 

Pears shall be sliced before being eaten. 

Pears are usually green, and better when a little soft. 

Note: Pears have a distinctive shape 

Tomatoes 

Paragraph group 3 

Tomatoes shall be washed before being eaten. 

Note: Tomatoes really are a fruit, not a vegetable. 

Or rather, vegetable is not a scientific term. It is a common term. 

回答

0

下面的例子使用Word VBA伸進Excel和獲取工作表的數據,然後將其用於定義範圍爲在文檔中突出顯示。爲了使此代碼正常工作,請確保引用Microsoft Excel 14.0對象庫

Microsoft Excel 14.0 Object Library

Public Sub HighlightParaGroups() 

Dim xlApp As Excel.Application 
Dim xlWB As Excel.Workbook 
Dim xlWS As Excel.Worksheet 
Dim x As Integer 
Dim r As Integer 'Total rows of data 
Dim rngStartPoint As Range 
Dim rngEndPoint As Range 

Set xlApp = CreateObject("Excel.Application") 
'Hard coded path to Excel worksheet 
Set xlWB = xlApp.Workbooks.Open("C:\Users\Joe\Desktop\SO Data Test.xlsx") 
Set xlWS = xlApp.Worksheets(1) 

'This is the hard coded amount of rows for the example given. 
'If row amount will vary, write a sub to detect range of data 
r = 3 
ActiveDocument.Select 

For x = 1 To r 
    Debug.Print xlWS.Cells(x, 2) 
    If xlWS.Cells(x, 2) = "True" Then 'test for values to highlight 
     Set rngStartPoint = DefineHighlightRange(x, True) 
     If x + 1 <= r Then 
      x = x + 1 
      Set rngEndPoint = DefineHighlightRange(x, False) 
      x = x - 1 
     Else 'In case last paragraph needs to be highlighted 
      ActiveDocument.Characters.Last.Select 
      Selection.Collapse 
      Set rngEndPoint = Selection.Range 
     End If 
     rngStartPoint.SetRange Start:=rngStartPoint.Start, End:=rngEndPoint.Start 
     rngStartPoint.HighlightColorIndex = wdYellow 
    End If 
Next 

xlWB.Close False ' close the workbook without saving 
xlApp.Quit ' close the Excel application 
Set xlWB = Nothing 
Set xlApp = Nothing 

End Sub 

這裏是用來定義範圍內的功能:

Public Function DefineHighlightRange(x As Integer, DecisionFlag As Boolean) As Range 

'DecisionFlag determines if the selection needs to be 
'repositioned for the start point of the range 
Selection.Find.Text = "Paragraph group " & x 
Selection.Find.Execute 
Selection.HomeKey 
If DecisionFlag = True Then 
    Selection.MoveDown Unit:=wdLine, Count:=1 
End If 
Set DefineHighlightRange = Selection.Range 

End Function 

希望這有助於。