使用VBScript在Excel 2003中分隔txt文件:错误

和我以前的问题一样,如果我使用的是VBA,这将非常简单,但是我必须使用VBScript。 我知道如何使用OpenText像这样导入一个txt文件:

objExcel.WorkBooks.OpenText "path\xxxx.txt" 

这工作正常,但文本不会自动放入Excel中的列。 所以我假设我需要指定分隔符。

但是,在尝试向该方法添加选项时出现错误。 例如

 objExcel.WorkBooks.OpenText "path\xxxx.txt", , , xlDelimited, , , , , , True, " " 

给我一个错误说:“工作簿类的OpenText方法失败”,代码800A03EC。 我究竟做错了什么? 我见过其他人使用这种方法。 关于如何格式化我的txt文件没有什么特别的,它只是文本。

谢谢你的帮助。

VBScript不识别VBA命名的常量。 如果要在代码中使用xlDelimited ,则必须在脚本中定义常量:

 Const xlDelimited = 1 

否则,你将不得不使用字面值如克里斯neilsen指出的。

另一个问题是你的方法调用中的 11 参数是错误的types。 该参数必须是一个布尔值,指示是否要使用不同的分隔符。 它是参数#12,您实际上指定了自定义分隔符,所以您需要更改该行

 objExcel.WorkBooks.OpenText "path\xxxx.txt", , , 1, , , , , , True, " " 

 objExcel.WorkBooks.OpenText "path\xxxx.txt", , , 1, , , , , , , True, " " 

使其工作。

当然,如果你想导入空格分隔的文本,你可以将参数#9设置为True而不指定一个OtherChar值:

 objExcel.WorkBooks.OpenText "path\xxxx.txt", , , 1, , , , , , True 

有关详细信息,请参阅文档 。

VBScript没有命名常量。

使用

 objExcel.WorkBooks.OpenText "path\xxxx.txt", , , 1, , , , , , True, " "