无法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
方法,而不TextToColumsn
select它:
objWorksheet1.Range("A:A").TextToColumns ...