从单个字符串中提取字符串,然后删除空格
Posted
技术标签:
【中文标题】从单个字符串中提取字符串,然后删除空格【英文标题】:Pulling strings from a single string and then deleting the spaces 【发布时间】:2018-04-03 15:08:07 【问题描述】:我有一个条形码,我需要从该字符串中提取特定部分。它是一个巨大的标识符代码,它有 90 个字符长,每个位置都有特定的含义,我只需要把这 90 个字符的字符串拉出来作为一个字符串,字符 16-35、35-43 和 89。
是否有一个 VBA 函数可以让我使用一次或三次将这些字符串中的每一个从原始字符串中提取出来?
此外,在每个字符串内部都有不使用字符的空格,我希望删除这些空格以使以下每个字符串更短。
Original String = FE52I FJKD4T52BCYT8L LEN274H9QRR ME01B29BC4GPSI
I need:
String 1 = "T52BCYT8L"
String 2 = "LEN274H9QRR"
String 3 = "S"
如果字符串 1 和 2 的长度不同,此条形码中有额外的空间作为占位符。 提前谢谢你的帮助!
【问题讨论】:
考虑使用中间,即中间(文本、起始位置、字符数) 空间见:***.com/questions/8571192/… 对于最终答案,为什么是 3 个字符串变量而不是 3 个字符串的单个数组?String 2 = "LEN274H9QRR"
你在你的问题中说 and pull out as a string, chars 35-43
所以出了点问题,因为拉出 35-43 个字符会让你得到 LEN274H9Q
而不是 LEN274H9QRR
【参考方案1】:
此代码将提取您在帖子中指定的字符串,还将删除空格:
Sub GET_STRINGS(ByVal ThisBarCode As String)
Dim STR_A, STR_B, STR_C As String
STR_A = Replace(Mid(ThisBarCode, 16, 20), " ", "")
STR_B = Replace(Mid(ThisBarCode, 35, 10), " ", "")
STR_C = Replace(Mid(ThisBarCode, 89, 1), " ", "")
Debug.Print STR_A
Debug.Print STR_B
Debug.Print STR_C
End Sub
你在这里得到的输出将是:
T52BCYT8L
LEN274H9Q
S
请注意第二个不适合您的示例,因为我按照您的说明进行操作(提取 35-43 个字符),所以这段代码可能需要稍作更新当你确切地知道你想要什么时。但这很容易。只需设置Mid Function 即可提取多少个字符,仅此而已。
此外,此代码仅在您的条形码长度为 90 个字符时才能正常工作,例如您的示例。
【讨论】:
以上是关于从单个字符串中提取字符串,然后删除空格的主要内容,如果未能解决你的问题,请参考以下文章