2012-01-15 63 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