【问题标题】:Getting specific string before a character in VBA在VBA中的字符之前获取特定字符串
【发布时间】:2020-08-21 14:08:27
【问题描述】:

我想要特定字符串中最左边的字符串。

例如。 sds_djfh_jdj我想要sds,我用了

LEFT('string',FIND("_",'string')-1)

但在我的情况下,_ 字符之前可能会出现另一个字符

例如。 sds#_djfh_jdj(我只想要 sds 但我使用的公式会给我 sds#)

谁能告诉我如何解决这个问题。

【问题讨论】:

  • 您要公式还是 vba 代码?
  • 改成-2而不是-1
  • 如果它始终是字符串的前 3 个字符,您可以使用 Left(string, 3)
  • 不清楚你想要一个字母序列在下划线英镑符号的左边还是在任何非字母字符的左边??
  • @JvdV 您可能希望将其作为解决方案发布。

标签: excel vba string excel-formula find


【解决方案1】:

正如评论,您可以在FIND 中包含一些OR 逻辑。对于您的所有情况,似乎以下方法就可以了:

=LEFT(A1,MIN(IFERROR(FIND({"#";"_"},A1)-1,LEN(A1))))

注意:是数组公式,需要通过CtrlShiftEnter

确认

【讨论】:

  • 但是当只有我想要的字符串是 sds 时,有一件事会导致问题,然后公式给出错误
  • @AlexSebastian,请查看更新。如果这回答了您的问题,请不要忘记接受答案(单击答案左侧的复选标记)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-10
  • 2014-05-22
  • 2022-01-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多