【问题标题】:Concatenation Not Working串联不起作用
【发布时间】:2018-04-06 02:56:01
【问题描述】:

我的延迟代码总是 3 位数。两个字母一个破折号 (-) 和一个数字。我正在尝试使用单行代码来检测 MT 或 DA,实际的分类号无关紧要,因此我希望消息框仅在两个字母上触发。

代码看起来正确,但它没有按应有的方式触发。如果我拿出通配符,它​​会起作用。我认为我的连接有问题,但我不确定。我尝试在它周围加上 () 括号,但这无济于事。

此外,我尝试使用 or 语句来捕获另一侧的 MT 代码,但除了类型不匹配的错误代码之外什么也没有。有什么想法吗?

If Range("L24").Value = "DA" & "*" Then
            MsgBox "The flight had a Maintenance delay"
Else

End If

【问题讨论】:

  • 要使用通配符,请使用Like 而不是=
  • 后测中的“=”运算符相等,即如果单元格值(例如“DAxyz”)完全等于“DA*”的连接值,包括一个星号字符。条件If Range("L24").Value Like "DA" & "*" Then 中的Like 运算符(正如@chrisneilsen 提到的那样)允许在“DA”模式中将星号实际用作通配符“”。

标签: excel string-concatenation vba


【解决方案1】:

此类问题的简单解决方案是完全忽略通配符并检查前两位数:

If Left(Range("L24").Value, 2) = "DA" Then

【讨论】:

  • DataWriter,这是完美的解决方案,非常感谢。有两种延迟代码类型,DA 和 MT。我尝试使用 Or 函数,但它似乎不起作用。有什么想法吗?
  • 好的,我得到了 Or 语句,我没有输入足够的代码。
猜你喜欢
  • 2022-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-02
  • 2013-06-22
相关资源
最近更新 更多