Access VBA中如何判断字符串倒数第8位为指定值并返回特定内容?
解决字符串倒数第8位的判断问题
问题出在你用Right()函数的方式不对哦——Right(str, 8)是取出字符串最后8个字符,而不是定位到倒数第8位的单个字符。要精准拿到倒数第8位的字符,我们需要结合Mid()和Len()函数来实现:
核心思路
倒数第8位的位置可以通过字符串总长度 - 7计算得到(比如字符串长度是15,15-7=8,从左数第8位就是倒数第8位),然后用Mid()函数取出这一位的单个字符,再和目标值对比。
修正后的代码
' 先判断字符串长度是否足够8位,避免报错 ElseIf Len(rst![DocNo / ERNo / PONo]) >= 8 And Mid(rst![DocNo / ERNo / PONo], Len(rst![DocNo / ERNo / PONo]) - 7, 1) = "P" Then sAdditionalText = "<Font face='Calibri'>" _ & "Please work with Purchasing to make the necessary corrections. <BR><BR>" _ & "<b>Please be advised that the funds from this check will remain as a charge against the FOAPALs utilized in the transaction until this matter is resolved.</b> <br><br>"
补充说明
- 加上
Len(rst![DocNo / ERNo / PONo]) >= 8的判断是为了避免当字符串长度不足8位时,Mid()函数抛出错误; Mid(字符串, 起始位置, 提取长度)这里提取长度设为1,刚好拿到我们需要的单个字符;- 如果你的目标字符是大小写敏感的,直接对比即可;如果需要忽略大小写,可以用
UCase()或LCase()统一转换后再判断,比如UCase(Mid(...)) = "P"。
内容的提问来源于stack exchange,提问作者Katie
相关产品推荐
相关产品推荐

