VBS InStr的问题 - 使用嵌套的InStr作为可选的起始参数

时间:2015-04-22 14:27:04

标签: vba excel-vba vbscript excel

早上好...我需要一些帮助将功能从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)更改为大小数组(1,7)的2D数组

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]
  1. string = array(0,x)
  2. start = InStr(array(0,x)," _")+ 1(这应该找到下划线, 然后返回下一个数字)
  3. length = INSTR(INSTR(阵列(0,x)时," &#34),阵列(0,x)时," ") - INSTR(阵列(0中,x)," _") - 1
  4. 所以要把它们放在一起以防万一,在我的2D数组中,第一个维度将包含完整的字符串

    USA_66544_File.doc
    RUS_3465_File.txt
    

    第二个是函数的输出

    66544
    3465
    

    我有人可以帮助我理解这一点,我非常感激。 谢谢, 草本植物

0 个答案:

没有答案