对于在vba中的strcomp函数的几点疑问?求解答~

strcomp语句需要设置比较参数:(excel 帮助里说)
vbUseCompareOption -1 使用Option Compare语句设置执行一个比较。
vbBinaryCompare 0 执行一个二进制比较。
vbTextCompare 1 执行一个按照原文的比较。
vbDatabaseCompare 2 仅适用于Microsoft Access,执行一个基于数据库信息的比较。

例如 str1=Hello,str2=Hellohello
1、那么strcomp(str1,str2,vbusecompareoption)这个会返回什么值?
vbusecompareoption 这个参数执行什么比较?
2、strcomp(str1,str2,vbbinarycompare) 这个会返回什么值?二进制比较的是逐字比较还是只比较首字母?
3、strcomp(str1,str2,vbtextcompare)这个会返回什么值?

以上疑惑请大师帮忙解答,不胜感激
二进制代码比较是遵循什么规则啊?

神不在的星期二
浏览 269回答 2
2回答

四季花海

一、vbusecompareoption 是参数的名称,它有三个值,分别是vbBinaryCompare 0 执行一个二进制比较。vbTextCompare 1 执行一个按照原文的比较。vbDatabaseCompare 2 仅适用于Microsoft Access,执行一个基于数据库信息的比较。注意,vbusecompareoption 本身不是参数值!!!所以,你的strcomp(str1,str2,vbusecompareoption)这个会返回”错误”。因为参数“vbusecompareoption”对VBA来说,是一个未定义的参数。二、strcomp(str1,str2,vbbinarycompare)返回 -1二进制比较的是按二进制字节进行比较。三、strcomp(str1,str2,vbtextcompare)返回 -1二进制代码比较遵循 "0111010101010101010110000000000011"的规则

慕田峪9158850

vbUseCompareOption是根据模块头的Option Compare语句来确定比较的。当是Option Compare Text 时,则是 vbTextCompare比较,当是Option Compare Binary时,则是 vbBinaryCompare 比较,如果模块中没有 Option Compare 语句,则缺省的文本比较方法是 Binary。比较规则和字符串长度无关,如果第一个字符不同,则只比较第一个字符,如果相同,接着再比较第二个字符,直到碰到第一个不同的字符,后面的字符就忽略了。
打开App,查看更多内容
随时随地看视频慕课网APP