首页 > 解决方案 > 如果找到字符,VBA 从字符中修剪字符串

问题描述

这可能已经被问过一百万次不同的变化,但我找不到合适的答案。

我有一个包含最多 4 个 MUT ID 的字符串(“MUT”后跟 5 个数字,例如 MUT00761)。如果有多个 ID,则以空格分隔。在某些情况下,两个 ID 之间也会有 * 号(例如 MUT00761 * MUT00684)。* 与左侧的 MUT ID 相关联。如果有的话,我需要删除所有这些 MUT ID(及其 *)。

例如,“MUT00111 MUT00222 * MUT00333 MUT00444 *”需要变为“MUT00111 MUT00333”。

标签: vba

解决方案


使用 Microsoft VBScript 正则表达式 5.5 库将“MUT *”的实例替换为 vbNullString。

或者

如果你不;t grok Regex 一个简单的函数,比如

Public Function StripStarredIds(ByVal IdString As String) As String

    Do While InStr(IdString, "*")

        IdString = Replace(IdString, Mid$(IdString, InStr(IdString, "*") - 10, 10), vbNullString)

    Loop

    StripStarredIds = IdString

End Function

推荐阅读