Excel VBScript上不同分隔符的TextToColumns

Excel VBScript上不同分隔符的TextToColumns,excel,csv,vbscript,text-to-column,Excel,Csv,Vbscript,Text To Column,你好,, 我的代码适用于逗号分隔的文件,但不适用于分号分隔的文件 有更好的方法吗? 我错过什么了吗 除了我编写代码的基础之外,我找不到任何东西。 我 代码如下: 出错时继续下一步 ' '参数列表: “项目|说明 ' ------|------------------------------------ “0 |文件路径 “1 |列用于TextToColumn操作 “2 |用于排序操作的列 '3 |分隔符(逗号、分号) 常数xlUp=-4162 Const xlRowEnd=“A65536”

你好,, 我的代码适用于逗号分隔的文件,但不适用于分号分隔的文件

有更好的方法吗? 我错过什么了吗

除了我编写代码的基础之外,我找不到任何东西。 我

代码如下:

出错时继续下一步
'
'参数列表:
“项目|说明
'  ------|------------------------------------ 
“0 |文件路径
“1 |列用于TextToColumn操作
“2 |用于排序操作的列
'3 |分隔符(逗号、分号)
常数xlUp=-4162
Const xlRowEnd=“A65536”
常数xlLeft=-4159
Const xlClmEnd=“XFD4”
常量xlFirstCell=“A1”
常量xlDelimited=1
常数xl=1
常数xlYes=1
Dim lstClm、lstRow、xlLastCell
设置objExcel=CreateObject(“Excel.Application”)
objExcel.Visible=True
设置obj工作簿=objExcel.Workbooks.Open(Wscript.Arguments.Item(0))
设置objSheet=obj工作簿。工作表(1)
用objSheet
lstClm=Split(.Cells(1,.Range(xlClmEnd).End(xlLeft).Column)。地址,“$”(1)
lstRow=.Range(xlRowEnd).End(xlUp).Row
如果lstClm=Wscript.Arguments.Item(1),则
如果Wscript.Arguments.Item(3)=“逗号”,则
.Columns(Wscript.Arguments.Item(1)).TextToColumns.Range(xlFirstCell),xlDelimited,True
其他的
.Columns(Wscript.Arguments.Item(1)).TextToColumns.Range(xlFirstCell),xlDelimited,True
如果结束
lstClm=Split(.Cells(1,.Range(xlClmEnd).End(xlLeft).Column)。地址,“$”(1)
如果结束
xlLastCell=lstClm&lstRow
设置对象范围=.Range(xlFirstCell&“:”&xlLastCell)
设置sortRng=.Range(Wscript.Arguments.Item(2))
对象范围。排序排序,xl升序,、xlYes
以
objWorkbook.Save
退出
设置objExcel=Nothing
设置objWorkbook=Nothing
设置objSheet=Nothing
如果错误号为0,则
WScript.Echo“发现错误:&Err.Description
呃,明白了
如果结束

@Flakes抱歉,我调整StackOverFlow代码时出错,我刚刚修复了它!:)为了添加到我的响应中,它确实会根据
Wscript.Arguments.Item(3)
[刚刚修复了此处的代码],处理分号,但遗憾的是,当
Wscript.Arguments.Item(3)
值为分号时,它不会分割或排序文件。我也编辑了此注释中的代码格式。@Flakes参数列在脚本顶部。@Fabiocraigwimmerflore您可以尝试将
$
更改为
拆分
函数调用中的code>。但是,我想知道当分隔符是逗号时它是如何工作的。@Flakes
$
拆分用于拆分单元格范围,这与
TextToColumn
的分隔有什么关系?非常确定a不包含分号。@Flakes是的,它正在拆分地址!我编辑了后面的结束如果指令!我将在一分钟内发布我如何添加参数!