【发布时间】:2012-10-11 17:28:01
【问题描述】:
我正在尝试为一个 Excel 文件创建一个宏,该文件有一列(我们称之为 A 列)单元格,每个单元格包含 4 到 5 个项目可交付成果和工作产品,以逗号分隔,并由可交付成果标签为“DEL”,工作产品标签为“WKP”。
我希望通过宏来完成以下任务:
- 我想保持 A 列不变。
- 为 Deliverables 创建 B 列,需要从 Col A 的单元格中提取该列
- 同样,为工作产品创建一个 C 列,该列需要从 A 列的单元格中提取
我举个例子:
假设单元格 A1 包含
DEL1:DEL 1 项目流程,DEL2:DEL 2 项目进度表,WKP1:WKP 1 工作产品文档
这是我希望单元格 B1 的样子:
DEL1:DEL 1 项目流程,DEL2:DEL 2 项目进度表
单元格 C1 看起来像这样:
WKP1:WKP1 工作产品文档
请注意,并非 Col A 中的所有单元格的字符长度都与 Cell A1 完全相同。但它们将包含 DEL 和 WKP。
鉴于可交付成果和工作产品的名称长度不同,我不能简单地复制 Col A 并运行 TextToColumn 来拆分它。
到目前为止,我想出的方法是将 Col A 复制到 Col B,保留可交付成果并尝试删除工作产品。
如您所见,这需要删除字符串中以“WKP”前面的逗号 (",") 和空格 (" ") 开头并以相关工作产品的最后一个字符结尾的部分(在这种情况下,这将是整个字符串本身的最后一个字符,因为似乎在 DEL 之后就提到了 WKP)。
虽然我可以编写一个宏,可以在每个单元格范围内找到文本“WKP”并将其删除,但我无法删除紧随其后的内容。换句话说,我只能为 Cell B1 制作这个:
DEL1:DEL 1 项目流程,DEL2:DEL 2 项目进度表,1:1 工作产品文档
有人可以帮我编写宏来做到这一点吗?如果还解释了语法,我将不胜感激。
谢谢!
【问题讨论】:
-
尝试使用 A 列上的“文本到列”功能来拆分逗号处的内容。然后你就可以使用 5 个单独的列,这应该会容易得多。
标签: string excel split excel-2010 vba