Vbscript 将WORD表格转换为文本(请求的集合成员不存在。)

Vbscript 将WORD表格转换为文本(请求的集合成员不存在。),vbscript,ms-word,Vbscript,Ms Word,也许比VBSCRIPT更像一个文字问题,但我的任务很简单,我只是不知道我在做什么 输入文件是和RTF,其中有23个表由分节符分隔。除页眉和页脚外,所有内容均为表格。我想逐个将每个表转换为文本,或者选择全部并转换全部。我最终会将文档保存为文本文件 下面转换一个表,然后给出集合错误 1 Const RTF="t_14.4.3.1_lbshift.rtf" 2 Const WDFORMATCODE=2 3 Set objWord = CreateObject("Word.Applic

也许比VBSCRIPT更像一个文字问题,但我的任务很简单,我只是不知道我在做什么

输入文件是和RTF,其中有23个表由分节符分隔。除页眉和页脚外,所有内容均为表格。我想逐个将每个表转换为文本,或者选择全部并转换全部。我最终会将文档保存为文本文件

下面转换一个表,然后给出集合错误

  1  Const RTF="t_14.4.3.1_lbshift.rtf"
  2  Const WDFORMATCODE=2
  3  Set objWord = CreateObject("Word.Application")
  4  With objWord
  5     .Visible = True
  6     .DisplayAlerts = True
  7     Set objDoc = .Documents.Open(rtf)
  8     t0 = objDoc.Tables.Count
  9        wscript.echo "T0=",t0
 10     for i = 1 to objDoc.Tables.Count
 11        wscript.echo i
 12        .Selection.Tables(i).Select
 13        .Selection.Rows.ConvertToText()
 14        next
 15     End With

T0= 23
1
2

Stderr output:
RTF2PDF.vbs(12, 7) Microsoft Word: The requested member of the collection does not exist.

可能问题在于第12行(和第13行?)中的
选择。
.Selection
看起来像是指
objWord
,但可能应该指
objDoc
,因为
objWord
没有表对象的集合。此外,在进入for循环时,没有(明确)选择任何内容,因此
.Selection
可能未定义。然后在for循环中
。Select
看起来很危险,因为它会动态更改选择。for循环中类似于
objDoc.Tables(i).Rows.ConvertToText()
的内容可能会起作用。从集合中删除项目时,应始终倒计时,而不是倒计时。这是因为删除项目1时,项目2变为项目1,因此新项目2是旧项目3等。