为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

strcomp语句需要设置比较参数:(excel 帮助里说)vbUseCompareOption -1 使用Option Compare语句设置执行一个比较。vbBinaryCompare 0 执行一个二进制比较。vbTextCompare 1 执行一个按照原文的比较。vbDatabaseCompare 2 仅适用于Microsoft Access,执行一个基于数据库信息的比较。例如 str1=Hello,str2=Hellohello1、那么strcomp(str1,str2,vbusecompareoption)这个会返回什么值?vbusecompareoption 这个参数执行什么比较?2、strcomp(str1,str2,vbbinarycompare) 这个会返回什么值?二进制比较的是逐字比较还是只比较首字母?3、strcomp(str1,str2,vbtextcompare)这个会返回什么值?以上疑惑请大师帮忙解答,不胜感激二进制代码比较是遵循什么规则啊?
查看完整描述

2 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

一、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"的规则

查看完整回答
反对 回复 2022-04-06
?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

vbUseCompareOption是根据模块头的Option Compare语句来确定比较的。
当是Option Compare Text 时,则是 vbTextCompare比较,当是Option Compare Binary时,则是 vbBinaryCompare 比较,如果模块中没有 Option Compare 语句,则缺省的文本比较方法是 Binary。
比较规则和字符串长度无关,如果第一个字符不同,则只比较第一个字符,如果相同,接着再比较第二个字符,直到碰到第一个不同的字符,后面的字符就忽略了。

查看完整回答
反对 回复 2022-04-06
  • 2 回答
  • 0 关注
  • 268 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信