【发布时间】:2019-06-24 11:23:03
【问题描述】:
我在 A 列的一个单元格中有多个文本行。我只想保留一行以特定字母开头(参见:图 1)。例如,首先我想检查它是否有以“MB”开头的行。如果有,那么我想只保留那条线。如果没有,它将连续搜索字母“SA”,然后是“PQ”,依此类推。我正在尝试在 Excel VBA 中实现这一点。
我发现了一些使用内置函数的线索。例如
*删除第一个逗号后的所有内容
=LEFT(A1,FIND(",",A1)-1)
*删除第二次出现逗号之前的所有内容
=RIGHT(SUBSTITUTE(A1, ",", CHAR(9), 2), LEN(A1)- FIND(CHAR(9), SUBSTITUTE(A1, ",", CHAR(9), 2), 1) + 1)
但是,这些不是我正在寻找的解决方案。如果有人可以帮助我,我将不胜感激。
问候, 奥利弗
【问题讨论】:
-
你考虑过正则表达式吗?看起来这可能对您的情况有所帮助。否则,
SPLIT()你的字符串到数组中也可以很好地工作。 -
@Jvdv 你能解释一下吗?我有一个可变范围,因此我想在宏中实现它。
-
正则表达式将测试您的字符串的特定字符组合,并返回匹配的结果。此外,
SPLIT()将使用分隔符(在您的情况下为换行符)分割您的字符串并将它们存储到您可以循环的数组中。这两个选项都可以很容易地在用于动态范围的 UDF(用户定义函数)中实现。我打赌周围有多个例子:)