【发布时间】:2015-04-22 14:27:03
【问题描述】:
大家早上好...我需要一些帮助将函数从 VBA 移植到 VBS
这是我的问题所基于的数据集的示例。
USA_66544_File.doc
RUS_3465_File.txt
我使用该函数提取两个下划线之间的数字字符串。万一这很重要,我首先根据下划线将字符串分成几段,然后将它们拼凑在一起以隔离我想要的字符串。
=MID(A5,FIND("_",A5)+1,FIND("_",A5,FIND("_",A5)+1)-FIND("_",A5)-1) '##original working in Excel
上面的输出分别是 66544 和 3465。
然后我需要将此功能移植到 VBS。 MID 没问题,但 FIND 更改为 InStr。此外,我的单元格引用 (A5) 更改为大小为 array(1,7) 的二维数组
MID(array(0,x),InStr(array(0,x),"_")+1,InStr(InStr(array(0,x),"_")+1),array(0,x),"_")'-(Instr(array(0,x),"_")-1)
我收到错误“参数数量错误或属性分配无效”。
这就是我认为我正在做的事情。 MID 接受三个参数,最后一个是可选的。
MID(string, start, [# of char to return]
- 字符串 = 数组(0,x)
- start = InStr(array(0,x),"_")+1(这应该找到一个下划线, 然后返回下一个数字)
- 长度 = Instr(Instr(array(0,x),""),array(0,x),"")-Instr(array(0,x),"_")-1李>
因此,为了以防万一,在我的二维数组中,第一个维度将包含完整的字符串
USA_66544_File.doc
RUS_3465_File.txt
第二个,函数的输出
66544
3465
任何人都可以帮助我理解这一点,我将不胜感激。 谢谢, 药草
【问题讨论】:
-
为什么不:
Split(array(0,x), "_")(1)