2012-01-15 60 views
2

在下面的文件「E:\ my_folder \ my_future_table.txt」我有這樣的文字:在.txt文件中創建「的MSWord」文件表了文本的

# animal country 
1 rabbit Germany 
2 wolf France 
3 koala USA 

(請注意,該文本每一行中的所有單詞都由製表符分隔)

需要使用哪些VBS腳本來創建基於該文本創建的表的「Word」文件(.doc)? (在這個例子中,該表應具有3列和第4行)

回答

3

像這樣的東西有一個健康的信用度,以the Scripting Guy

  1. VBS的讀取測試文件(請改變你的路徑),和然後,通過換行分割成一個數組ArrVar
  2. 此陣列中的每一行是由VbTab進一步分成的第二陣列,ArrVar2
  3. VBS的創建一個字表在尺寸上等於ArrVar的長度和寬度的ArrVar2
  4. 每項由細胞寫入表格單元格,通過

output

Set objWord = CreateObject("Word.Application") 
Set objDoc = objWord.Documents.Add() 

Set objRange = objDoc.Range() 
strFilePath = "c:\temp\my_future_table.txt" 

Set objFSO = CreateObject("scripting.filesystemobject") 
Set objTF = objFSO.opentextfile(strFilePath) 
strAll = objTF.readall 
arrVar = Split(strAll, vbNewLine) 
numcols = UBound(Split(arrVar(0), vbTab)) + 1 

objDoc.Tables.Add objRange, UBound(arrVar) - LBound(arrVar) + 1, numcols 
Set objTable = objDoc.Tables(1) 

For lngrow = LBound(arrVar) To UBound(arrVar) 
    arrVar2 = Split(arrVar(lngrow), vbTab) 
    For lngcol = LBound(arrVar2) To UBound(arrVar2) 
    objTable.Cell(lngrow + 1, lngcol + 1).Range.Text = arrVar2(lngcol) 
    Next 
Next 

objTF.Close 
set objFSO = Nothing 

objTable.AutoFormat (9) 
objWord.Visible = True 
+1

WOW行!非常感謝,brettdj !!!特別感謝你的鏈接! – brilliant 2012-01-15 10:45:29