Ku mojemu zaskoczeniu, Excel zna przynajmniej 4 różne metody zastępowania podłańcucha.
Wszystkie mogą obsługiwać prowadzenie @
w sposób, w jaki chcesz. Z wyjątkiem pierwszej metody, której używasz podczas otwierania okna wyszukiwania i zamiany .
Jest @
to symbol zastępczy tekstu. . Jeśli wpiszesz wartość liczbową jak 123
w komórce i ustawisz niestandardowy format na @
, komórka zostanie sformatowana jako tekst (Wyrównanie: prawo »lewo).
Te wszystkie przykłady wymienić b
wartości komórki A1' abc
z 123
. Wynik jest zawsze a123c
.
1. Range.Replace () (to samo co CTRL+ Hokno dialogowe)
[A1].Replace "b", "123", xlPart
Składnia: Range.Replace( What, Replacement, [LookAt], [SearchOrder], [MatchCase], [SearchFormat], [ReplaceFormat] )
2. WorksheetFunction.Replace ()
[A1] = WorksheetFunction.Replace([A1], InStr([A1], "b"), Len("b"), "123")
Składnia: WorksheetFunction.Replace( old_text, start, number_of_chars, new_text )
3. WorksheetFunction.Substitute ()
[A1] = WorksheetFunction.Substitute([A1], "b", "123")
Składnia: WorksheetFunction.Substitute( text, old_text, new_text, [nth_appearance] )
4. Zamień ()
[A1] = Replace([A1], "b", "123")
Składnia: Replace( Expression, Find, Replace, [Start, [Count, [Compare]]] )
Aby odpowiedzieć na pytanie Loopo. Powinieneś użyć ostatniej metody, ponieważ może ona obsłużyć @
na początku wartości komórki. Uczyniłem to trochę wygodniejszym z 2 wejściami.
Sub ReplaceFunction()
strFind = InputBox("Find what")
strReplace = InputBox("Replace with")
For Each cell In Selection
cell.Value = Replace(cell.Value, strFind, strReplace)
Next
End Sub
'@
akceptowalną?'
Symbol nie będzie widoczny.