VBA复制单元格的内容减去另一个单元格的内容

时间:2017-02-17 15:10:43

标签: excel vba excel-vba

我尝试使用Google搜索答案,但遗憾的是,在这种情况下,我无法找到满足我特定需求的任何内容。

我有两个单元格,后者由一个单词组成,也可以在第一个单元格中找到。我想将所有内容从单元格1复制到单元格3减去单元格2的内容。

例如:

单元格1

  

这是样本文本

单元格2

  

样品

第3小组

  

这是文本

有没有办法通过VB宏或甚至简单的公式来做到这一点?

在此先感谢,感谢任何帮助。

3 个答案:

答案 0 :(得分:0)

试试这个:

Sub removeYourString()
   Dim withParts As String
   Dim removeParts As String
   Dim withoutParts As String

   withParts = Range("A1").Value
   removeParts = Range("A2").Value & " "
   withoutParts = Replace(withParts, removeParts, "")
   Range("A3").Value = withoutParts
End Sub

删除列中的所有内容

Sub removeYourString()
   Dim withParts As String
   Dim removeParts As String
   Dim withoutParts As String
   Dim i As Integer

   For i = 1 To 100
        withParts = Range("A" & i).Value
        removeParts = Range("B" & i).Value & " "
        withoutParts = Replace(withParts, removeParts, "")
        Range("C" & i).Value = withoutParts
   Next i
End Sub

或使用公式并输入c1至c100

=SUBSTITUTE(A1,B1 & " ","")

答案 1 :(得分:0)

您可以在cell3中解决此公式:

=CONCATENATE(LEFT([Cell1],FIND([Cell2],[Cell1],FIND([Cell2],[Cell1])+1)-1),RIGHT([Cell1],FIND([Cell2],[Cell1])+LEN([Cell2])+1))

答案 2 :(得分:0)

阐述SJR对SUBSTITUTE

的建议

使用以下公式:=TRIM(SUBSTITUTE(A1,B1,""))。把它放在C1中并复制列。这将从第1列中的字符串中删除第2列中的单词。TRIM函数删除了删除单词的额外空格。如果一个单词可以作为另一个单词的子集出现(例如,单词是'test'但你的字符串是'Test,testing,1,2,3'),你可以在过滤单词的末尾添加一个空格,以便'测试'不匹配。

如果单词出现多次,除非您指定要删除的匹配项,否则它将删除所有匹配项。将(A1,B1,"")更改为(A1,B1,"",1)只会删除第一个匹配项。所以'Test1 test2 test3'将改为'1 test2 test3'