Excel 删除单元格中以字符串开头、以字符结尾的文本
我一直在努力想如何删除以某个文本开头、以字符结尾的文本: 我在Excel中有一个单元格,可以包含字符串: [#1-一些文字][#4-一些其他文字][#7-一些其他文字] 或 [#4-更多文本][#7-更多文本] 我需要删除[#4-更多文本],但保留其余文本 视觉: 我想使用VBA删除“[#4-更多文本]”,但该字符串可能不同,该字符串将Excel 删除单元格中以字符串开头、以字符结尾的文本,excel,vba,Excel,Vba,我一直在努力想如何删除以某个文本开头、以字符结尾的文本: 我在Excel中有一个单元格,可以包含字符串: [#1-一些文字][#4-一些其他文字][#7-一些其他文字] 或 [#4-更多文本][#7-更多文本] 我需要删除[#4-更多文本],但保留其余文本 视觉: 我想使用VBA删除“[#4-更多文本]”,但该字符串可能不同,该字符串将 始终以“[#”开头 然后是一个数字(在不同的搜索中可能会有所不同,但我可以通过编程获得) 然后是“-”(破折号) 然后是一些不同的文本 然后以“]”结尾
- 始终以“[#”开头
- 然后是一个数字(在不同的搜索中可能会有所不同,但我可以通过编程获得)
- 然后是“-”(破折号)
- 然后是一些不同的文本
- 然后以“]”结尾
谢谢!Regext应该能帮到你
Sub test()
Dim s As String
s = "[#1-Some text][#4-some more text][#7-Some additional text]"
Dim objRegex As Object
Set objRegex = CreateObject("vbscript.regexp")
With objRegex
.Pattern = "\[#4-[a-zA-Z ]+\]"
.ignorecase = True
Debug.Print .Replace(s, vbNullString)
End With
End Sub
[#4-更多的文本]并不总是相同的,但总是以方括号、符号、数字和破折号开始……然后是一些文本……然后以方括号结束。它们都以[可以更改的数字-,并且包含#s right?开头,并且都以][#…等等。如果没有一个更好更清晰的excel示例,很难看到发生了什么,你能稍微编辑一下吗?。但是计算单元格中['s或]]的数量可以给你一个关键/线索。David,刚刚编辑过,希望有助于澄清你的需求,但拆分函数对你有用吗?
Splt(YourText,“[#”)(X)
其中X
是元素号。要正确使用它,可以将其放入一个变量数组,如MyArr=Splt(YourText,[#”)
中,然后可以使用数组的边界来查找最后一个数组,如msgbox MyArr(ubound(MyArr))
这将显示最后一个元素。将ubound更改为lbound将显示第一个元素。哇,原来这是拆分文本和获取剩余长度的组合,这要感谢你们两位引导我朝着正确的方向前进。我忙于尝试使其他解决方案工作,忽略了简单性。我将更新当我清理完我的代码后,我的答案是-谢谢!!我用组合Split和Len(和Right$)实现了它,但是这也起了作用,谢谢!