| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1599 人关注过本帖
标题:Instr问题
只看楼主 加入收藏
w258
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-7-8
收藏
 问题点数:0 回复次数:11 
Instr问题
我用Instr(2580369147,S)查S和位置,147的位置总是出错.怎么回事?
搜索更多相关主题的帖子: Instr 位置 
2007-08-22 08:29
XieLi
Rank: 1
等 级:新手上路
威 望:1
帖 子:762
专家分:0
注 册:2007-7-24
收藏
得分:0 
可不可把問題說清楚一點啊。

拥有蓝天的白云,拥有你的我.
2007-08-22 08:36
slore
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:1108
专家分:0
注 册:2005-7-1
收藏
得分:0 
2580369147?  参数要String。。。你加上引号

快上课了……
2007-08-22 08:40
w258
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-7-8
收藏
得分:0 


就是下面这个程序,查1470369258最后三位的位置总是返回0,s(I)是数组,公用的,高手给看一下呀,谢谢
Sub 判断201()
For I = 1 To 3

If InStr("1470369258", s(I)) <= 3 Then
R(I) = 1
R1(I) = R2(I) + 1
ElseIf InStr("1470369258", s(I)) > 3 <= 7 Then
R(I) = 0
R0(I) = R0(I) + 1
ElseIf InStr("1470369258", s(I)) > 7 Then
R(I) = 2
R2(I) = R1(I) + 1
End If
Next I
End Sub

2007-08-22 09:07
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 

还是slore蜘蛛侠说得对哟……

[此贴子已经被作者于2007-8-22 9:35:02编辑过]

2007-08-22 09:14
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 
补充 Start是数值型
2007-08-22 09:14
slore
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:1108
专家分:0
注 册:2005-7-1
收藏
得分:0 
以下是引用multiple1902在2007-8-22 9:14:14的发言:

这种问题哟。。。baidu一下不就行了么

而且VB也会提示你语法的你何必条件反射一样看都不看呢

Instr(Start,String1,String2[,.....])

Start表示从String1的第几个字符开始查找匹配,最小值为1



Instr(1,"abc","c")=3

至于上面的InStr("1470369258", s(I))这种用法纯属胡闹


要是不是胡闹呢?
你测试过麽?还是以前没有用过?o(∩_∩)o

他错在
InStr("1470369258", s(I)) > 3 <= 7

Sub 判断201()
For i = 1 To 3
If InStr("1470369258", s(i)) <= 3 Then
R(i) = 1
R1(i) = R2(i) + 1
ElseIf InStr("1470369258", s(i)) <= 7 Then
R(i) = 0
R0(i) = R0(i) + 1
ElseIf InStr("1470369258", s(i)) > 7 Then
R(i) = 2
R2(i) = R1(i) + 1
End If
Next
i
End Sub


快上课了……
2007-08-22 09:30
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 
以下是引用slore在2007-8-22 9:30:42的发言:


要是不是胡闹呢?
你测试过麽?还是以前没有用过?o(∩_∩)o

他错在
InStr("1470369258", s(I)) > 3 <= 7

Sub 判断201()
For i = 1 To 3
If InStr("1470369258", s(i)) <= 3 Then
R(i) = 1
R1(i) = R2(i) + 1
ElseIf InStr("1470369258", s(i)) <= 7 Then
R(i) = 0
R0(i) = R0(i) + 1
ElseIf InStr("1470369258", s(i)) > 7 Then
R(i) = 2
R2(i) = R1(i) + 1
End If
Next
i
End Sub

啊……还真没测试过 纯属凭经验说话……

我尽快测试

2007-08-22 09:34
slore
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:1108
专家分:0
注 册:2005-7-1
收藏
得分:0 
凭经验

不写start参数才是懒人的经验……(直接 函数的固定格式的话就没有经验可谈拉~)

快上课了……
2007-08-22 09:52
西风独自凉
Rank: 8Rank: 8
等 级:贵宾
威 望:43
帖 子:3380
专家分:28
注 册:2007-8-2
收藏
得分:0 


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 返回的是字节位置,而不是字符位置。


2007-08-22 10:35
快速回复:Instr问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034609 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved