2017-02-17 135 views
-1

我試過Google搜索答案,但不幸的是,在這種情況下,我無法找到滿足我特定需求的任何內容。VBA複製一個單元格的內容減去另一個單元格的內容

我有兩個單元格,其中後一個單元格也可以在第一個單元格中找到。我想複製從小區1〜小區3的所有內容減去小區2

的內容例如:

小區1

這是示例文字

Cell 2

樣品

小區3

這是文本

有什麼辦法或者通過VB宏甚至用一個簡單的公式來做到這一點?

在此先感謝,任何幫助表示讚賞。

+1

檢查出SUBSTITUTE公式。 – SJR

+1

@SJR巨魔模式ON:LOL「特定需求」! – R3uK

+0

或'WorksheetFunction.Replace' https://msdn.microsoft.com/en-us/library/office/ff194800.aspx – Vityata

回答

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 

刪除所有或者使用一個公式,並通過C100放在C1

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

非常感謝,pokemon_Man。這正是我所期待的。如何擴展代碼以便引用整列而不是單元格?例如,取A1到A100的條目,並從B1到B100條目中刪除相應條目,並將其放入C1到C100中。 –

+0

檢查更新後。 –

+0

@ D.Todor-當有完美的工作表公式時,真的不需要VBA。 – SJR

0

您可以解決這個公式在小區3 :

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

在闡述的SUBSTITUTE SJR的建議:

用下面的公式:=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'

相關問題