返回列表 上一主題 發帖

[發問] WORD檔資料位移無法分開讀取

[發問] WORD檔資料位移無法分開讀取

各位大大好:

   小弟想利用下列語法取出指定WORD檔
其檔案格式為RTF。但發現該檔案資料取
出之後其位置已位移,因此無法像TXT檔
可計算第幾位元數。
   小弟開啟WORD也發現它有使用到定位點
,從其標題有五個部分也分別使用定位點。
但只要讀取該資料時,又會出現整列資料
併在一起。無法像它使用的定位點可分開讀取。
請問如何可算出位元數並取出該檔案
資料轉入至EXCEL表內呢?

語法如下:
Sub test()
   
    Dim wrdApp As Word.Application
    Dim wrdDoc As Word.Document
    Dim tString As String, tRange As Word.Range
    Dim p As Long
    Dim mFile$
   
    Application.ScreenUpdating = False
   
    mFile = "D:\temp\r75test.rtf"
   
    Set wrdApp = CreateObject("Word.Application")
    Set wrdDoc = wrdApp.Documents.Open(mFile, ReadOnly:=True)
  
    With wrdDoc
        For p = 1 To .Paragraphs.Count
            Set tRange = .Range(Start:=.Paragraphs(p).Range.Start, _
                End:=.Paragraphs(p).Range.End)
            tString = tRange.Text
            Debug.Print tString    '讀取之後其定位點的位置己不存在了
           
        Next p
        .Close ' close the document
    End With
    wrdApp.Quit ' close the Word application
    Set wrdDoc = Nothing
    Set wrdApp = Nothing     
   
End Sub
謝謝各位大大
R75TEST.rar (3.69 KB)

回復 2# GBKEE
版主大大您好:

   謝謝版主大大的指敎。
不過,小弟還是無法理解
語法的內含。不知如何啟用
該語法。
   另之前客戶端提供的
WORD檔,小弟會先將其轉成
TXT檔再利用WORKBOOKS.OPENTEXT FILENAME
利用資料剖析方式取出資料。
後來改用HSIEH版主大大提供直接引用
Dim wrdApp As Word.Application
Dim wrdDoc As Word.Document
也都很順利。最主要的是該資料的
排列位置可以很清楚的分辨是屬於
那一欄位的資料。
但近日客戶端不知為何其WORD版本看
似相同,但轉成TXT檔時整個欄位
會併在一起,也就無法分辨是那一欄
位的資料了。因其表頭可分成四個欄位
一、Marks & Nos  
二、Description of Goods
三、Quantity
四、Unit Price

因此,小弟只好改用人工鍵盤
來輸入資料,再存入自己的
資料庫。不但浪費時間,又
會担憂資料出錯。

小弟想再提供之前客戶端提供
的另一WORD檔案,使用小弟
的表單來取出資料也都可以
逹成。不知此二個檔案為何
會有如此大的差異呢?

謝謝版主大大。
AA.rar (35.23 KB)

Testword.rar (30.28 KB)

TOP

回復 2# GBKEE


版主大大早安:
小弟今早有測試一原始方法,
先開啟Excel→再開啟該
Word檔之後,將欲複製
之Word資料選取→選複製
→再回到Excel選貼上。其
表格仍保留與word相同。
因此,小弟可先使用半手工
方式來達了。
只是小弟仍想知道如何突破此
word檔為何透過程式讀取時
其表格欄位會完全改變呢?

感恩大大!

TOP

回復 6# GBKEE


    版主大大您好:

小弟引用版主大大提供之
語法測試很成功。
小弟會再詳加研究版主大大
的語法。
目前仍處在霚裡看花
的階段。

感恩大大!

TOP

本帖最後由 dechiuan999 於 2012-6-26 07:05 編輯

回復 6# GBKEE


版主大大您好:

  小弟已理解版主提供
的語法了。當我理解語法的
時候,感受那種喜悅真是
另人難以形容 。
TheSplit = Split(Str, vbTab)
多謝版主大大如此費心相助。
小弟真是受益良多。

就感恩!

TOP

        靜思自在 : 吃苦了苦、苦盡廿來,享福了福、福盡悲來。
返回列表 上一主題