2012-03-05 49 views
1

我是第三年軟件設計的學生。我目前正處於工作安排的中間。我被要求創建一個工具來解析相關表格數據的Word文檔並將其導出到ms excel。我從來沒有與VB進行任何交易,但基於我進行的研究,我決定這是要採取的路線。無論如何,我設法成功地執行此操作。然而,現在我被要求擴展這個程序來解析段落。文件分成幾章。每個章節的標題都是'h2'風格,我的想法是嘗試搜索'h2'風格的所有文本作爲唯一字符串,如果找到,應該是所需的標題,然後處理下面的文本。在VB6中搜索唯一字符串的標題樣式

可以這樣做嗎?如果是這樣,你可以讓我知道如何,這是一個陡峭的學習曲線,我很高興我取得了什麼,現在,我已經死了。我有方法論,它找到了實現它的正確方法。這也將允許我創建一個搜索表單,我打算整合以允許用戶搜索他們想要解析的章節...

如果有人能幫助我擺脫這個漏洞,我將不勝感激。

回答

1

你挑

VBA字代碼(這個地方的模塊中)

Option Explicit 

Sub VBASample() 
    Dim para As Paragraph 
    Dim strParaText As String 
    Dim searchString As String 

    searchString = "Sample" 

    For Each para In ActiveDocument.Paragraphs 
     If para.Style = "Heading 2" Then 
      strParaText = para.Range.Text 
      If InStr(1, strParaText, searchString, vbTextCompare) Then 
       '~~> You code here if the text is found 
       MsgBox "Found" 
      End If 
     End If 
    Next para 
End Sub 

VB6 CODE

Option Explicit 

'~~> Using Late Binding so no reference to Word object is required. 
Sub VB6Sample() 
    Dim oWordApp As Object, oWordDoc As Object, oWordPara As Object 
    Dim FlName As String, strParaText As String, searchString As String 

    '~> File Name where you want to check the paragraphs 
    FlName = "C:\Documents and Settings\Siddharth Rout\Desktop\Sample.doc" 

    '~~> Establish an Word application object 
    On Error Resume Next 
    Set oWordApp = GetObject(, "Word.Application") 

    If Err.Number <> 0 Then 
     Set oWordApp = CreateObject("Word.Application") 
    End If 
    Err.Clear 
    On Error GoTo 0 

    oWordApp.Visible = True 

    Set oWordDoc = oWordApp.Documents.Open(FlName) 

    '~~> String that you want to search 
    searchString = "Sample" 

    For Each oWordPara In oWordDoc.Paragraphs 
     If oWordPara.Style = "Heading 2" Then 
      strParaText = oWordPara.Range.Text 
      If InStr(1, strParaText, searchString, vbTextCompare) Then 
       '~~> You code here if the text is found 
       MsgBox "Found" 
      End If 
     End If 
    Next oWordPara 
End Sub