请问这个语句怎么没办法准确定位啊?奇怪j = InStr(i + 1, env, ";")   '找的是分号位置不对啊?env里没有中文,都是英文或符号

解决方案 »

  1.   

    妳调试一下,后面加上,
    debug.print "|" & env & "|"
    debug.print j
    然后把结果贴出来
      

  2.   

    妳是不是以为返回值从i + 1算起了?
    i + 1是搜索的起点,但返回值还是从env的第一个字符算起的
      

  3.   

    env的内容是“C:\PROGRA~1\COMMON~1\AUTODE~1;C:\Program Files\Microsoft SQL Server\80\Tools\BINN;c:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;c:\Program Files\Microso”位置不对
      

  4.   

    我理解instr函数的意思应该没错
      

  5.   

    看看msdn上的:
    ========================================================InStr 函数
          返回 Variant (Long),指定一字符串在另一字符串中最先出现的位置。语法 InStr([start, ]string1, string2[, compare])InStr 函数的语法具有下面的参数:部分 说明 
    start 可选参数。为数值表达式,设置每次搜索的起点。如果省略,将从第一个字符的位置开始。如果 start 包含 Null,将发生错误。如果指定了 compare 参数,则一定要有 start 参数。 
    string1 必要参数。接受搜索的字符串表达式。 
    string2 必要参数。被搜索的字符串表达式。 
    Compare 可选参数。指定字符串比较。如果 compare 是 Null,将发生错误。如果省略 compare,Option Compare 的设置将决定比较的类型。 
    设置 compare 参数设置为:常数 值 描述 
    vbUseCompareOption -1 使用Option Compare 语句设置执行一个比较。 
    vbBinaryCompare 0 执行一个二进制比较。 
    vbTextCompare 1 执行一个按照原文的比较。 
    vbDatabaseCompare 2 仅适用于Microsoft Access,执行一个基于数据库中信息的比较。 
    返回值如果 InStr返回 
    string1 为零长度 0 
    string1 为 Null Null 
    string2 为零长度 Start 
    string2 为 Null Null 
    string2 找不到 0 
    在 string1 中找到string2  找到的位置 
    start > string2 0 
    说明InStrB 函数作用于包含在字符串中的字节数据。所以 InStrB 返回的是字节位置,而不是字符位置。
      

  6.   

    我试过了,没有错啊
    j = InStr(str1, ";")
    j=30j = InStr(31, str1, ";") 
    j=82j = InStr(83, str1, ";") 
    j=156
      

  7.   

    其中str1="C:\PROGRA~1\COMMON~1\AUTODE~1;C:\Program Files\Microsoft SQL Server\80\Tools\BINN;c:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;c:\Program Files\Microso"
      

  8.   

    我错了,是我用mid函数出问题了,对不起大家
      

  9.   

    Dim s() as string
    s=split(str1,";")
    这样就可分离出全部路径了,不用Instr,太累,还出错!