【发布时间】:2020-06-10 07:59:21
【问题描述】:
我一直在努力弄清楚如何删除以某些文本开头并以字符结尾的文本:
我在 Excel 中有一个可以包含字符串的单元格:
[#1-一些文本][#4-更多文本][#7-一些附加文本]
或
[#4-一些额外的文字][#7-一些额外的文字]
我需要删除 [#4-Some more text],但保留剩余的文本
我想使用 VBA 删除“[#4-Some More Text]”,但是那个字符串可能不同,字符串会
- 始终以“[#”开头
- 然后是一个数字(在不同的搜索中可能会有所不同,但我可以通过编程方式获得)
- 然后是“-”(破折号)
- 然后是一些不同的文本
- 然后以“]”结尾
我正在以编程方式创建第一部分“[#4-”(因为数字可能会改变),并且 sn-p 始终以方括号结尾,中间的文本可能不同
我尝试调整多个其他帖子: Remove text appearing between two characters - multiple instances - Excel Remove text that is between two specific characters of a string 但似乎无法正确处理。
有人可以帮助或指导我解决类似的情况吗?
谢谢!
【问题讨论】:
-
[#4-Some more text] 并不总是相同,但总是以方括号、# 符号、数字和破折号开头...然后是一些文字...然后以方括号
-
它们都以[可以更改的数字-开头,并且包含#的权利吗?并以 ][#.. 等结尾。 ?如果没有更好更清晰的 excel 示例,很难看到发生了什么,你能编辑一下吗? .但是计算单元格中 ['s 或 ][ 的数量可以为您提供关键/线索。
-
刚刚编辑过,大卫,希望有助于澄清
-
不太清楚您的要求,但拆分功能对您有用吗?
Splt(YourText,"[#")(X)其中X是元素编号。要正确使用它,您可以将其放入变量数组中,例如MyArr = Splt(YourText,"[#")然后您可以使用数组的边界找到最后一个,例如msgbox MyArr(ubound(MyArr)),它将显示最后一个元素。将 ubound 更改为 lbound 将显示第一个。 -
哇,原来这是拆分文本和获取剩余长度的组合,多亏了你们两个带领我朝着正确的方向前进。我非常着迷于尝试使其他解决方案发挥作用,却忽略了简单性。清理完代码后,我会更新答案 - 谢谢!!