无法select范围

我正在写一个VBScriptrecursion转换文件夹中的每个CSV到xlsx文件。 我想根据CSV文件中的分隔符将这些xlsx文件中的数据分开。

相关的代码如下:

Set objWorkbook = objExcel.Workbooks.open(srccsvfile) Set objWorksheet1 = objWorkbook.Worksheets(1) objWorksheet1.Activate objWorksheet1.Range("A:A").Select MsgBox Selection '<<< Here the MsgBox is empty Selection.TextToColumns objWorksheet1.Range("A1"), xlDelimited, xlDoubleQuote, False, False, False, False, False, True, "|" 

我的问题是,functionTextToColumns什么都不做,因为Selection是空的。

如何解决这个问题?

(脚本从.vbs文件执行,而不是从Exceldebugging器执行)。

VBScript不支持像VBA这样的隐式对象,因此您的Selection只是一个未定义的variables。 如果没有Option Explicit指令,则未定义variables会自动初始化为一个Empty值,该值将自动转换为MsgBox调用中的空string。

您需要指定为您提供Selection属性的对象。

 MsgBox objExcel.Selection 

这样做会给你一个types不匹配的错误,因为一个范围不能被转换成一个string。 您需要使用适当的属性,例如Address

 MsgBox objExcel.Selection.Address 

但是,您应该能够在Selection属性上调用TextToColumns

 objExcel.Selection.TextToColumns ... 

如果你想使用一个variables,你可以把select分配给这个:

 Set selection = objExcel.Selection selection.TextToColumns ... 

或者,您可以直接在范围上使用TextToColumsn方法,而不TextToColumsnselect它:

 objWorksheet1.Range("A:A").TextToColumns ...