【问题标题】:Excel VBA - Check if cell contains specific charactersExcel VBA - 检查单元格是否包含特定字符
【发布时间】:2022-01-14 13:54:09
【问题描述】:

我正在使用以下内容来检查单元格是否包含任何无效字符。

If Target Like "*[\!%^:~#|@.;`\/*$,]*" Then

这可以正常工作并返回正确的错误消息。

我想在支票中添加双引号 ",但是当我添加 " 时出现错误。

我该怎么做?

谢谢

【问题讨论】:

  • 为什么不直接替换它们呢?
  • 双引号是怎么加的?您应该能够将它添加到字符类中,但是在将文字双引号添加到文本字符串时,您可能必须像在 VBA 中通常那样“加倍”它。
  • @PatrickHonorez 我已尝试确保它们已更新。
  • @RonRosenfeld 我只是添加了“然后导致错误。做了两次添加它。

标签: excel vba wildcard


【解决方案1】:

双引号应该可以做到:

Like "*[\!%^:~#|@.;`\/*$,""]*"  

注意 \ 是 LIKE 转义字符,所以“\!”实际上是“!”的意思。

测试:

a = "abc""de"
? a
abc"de
? a like "*[b]*"
True
? a like "*[""]*"
True

【讨论】:

  • Like "*[\!%^:~#|@.;`\/*$,""]*" 将等于 Like "*[\!-%*,.\/:;@^`|~]*"... 虽然未经测试,但 ascii 表会让我相信我们可以创建该范围。这至少会使双星号变得不必要。
  • @PatrickHonorez 感谢它的工作和发现 \!它前面不应该有斜线。
  • @JvdV Thx 评论 中的替代模式(认为您指的是双引号而不是星号),但究竟是什么使 double 引号里面有没有必要?
  • @T.M.引号将在 ascii 表上的 !-% 之间的范围内,因此您不必写入该范围内的所有字符。是的,我的意思是引号!感谢您的提问。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-23
  • 2018-04-21
  • 1970-01-01
  • 1970-01-01
  • 2018-10-26
相关资源
最近更新 更多