我想知道是否有办法完成这项任务。我有列A和B.列A1包含文本值"共享服务"。列B1包含文本值"共享"。
我想要做的是删除"共享" “共享服务”的一部分"所以剩下的就是"服务"。我需要在A / B列中为许多不同的值执行此操作。
有没有简单的方法来实现自动化?它基本上只是一个质量查找并替换为空白值,它只需要基于B列中的值。
更新:
感谢您的回复,但这些解决方案假设列并排排列。为了澄清,我需要在B列中查找所有值,并从A列中删除所有值。所以" vat"线将成为""在这个例子中(它从B列中找到" vat"值并从A中删除它)。这必须使用1000个不同的值来完成。
提前感谢您提供的任何帮助。
答案 0 :(得分:0)
我可能错了,但听起来你可能想要一个集合。我认为这是一个起点:
Sub RemoveWords(DeleteFromCol As Range, FindCol As Range)
Dim words As New Collection
Dim r As Range
Dim word As Variant
For Each r In FindCol
words.Add (r.Value2)
Next r
For Each r In DeleteFromCol
For Each word In words
r.Value2 = Replace(r.Value2, word, "")
Next word
Next r
End Sub
然后你可以在你的例子中用任意范围调用它:
RemoveWords Range("A1:A11"), Range("B1:B8")
我猜这可能不是100%,因为在你的例子中我会在某些情况下清除两个单词,因为它们存在于“一个单词”列表中。你可以随心所欲地处理它。