You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:55:04