2017-02-22 34 views
0

Я использую функцию поиска и замены и код vba в Excel. Я хочу заменить все строки типа «/ 15» на «.15», но только если за «/ 15» не следуют никакие другие символы. Есть ли оператор для моей потребности?Оператор не сопровождается символом

Например, если я заменю все «/ 15», он также заменяет эту строку, если за ней следуют другие символы.

10/15/15 -> 10.15.15

Но что я хочу

10/15/15 -> 10/15,15

Приветствия

+0

Пожалуйста, вы можете добавить строку ввода, например, или хх/хх/хх полный входной строки смотреть? –

ответ

0

Вы могли бы использовать регулярные выражения, множество вещей в сети об этом.

Или что-то в VBA, так что, без реальной потребности в a2, можно взять последний из a1 перед рукой, но просто чтобы показать вам разницу в массивах в окне местных жителей.

Function test(strInput As String) 

Dim a1() As String 
Dim a2() As String 

a1 = Split(strInput, "/") 
a2 = a1 

ReDim Preserve a2(UBound(a1) - 1) 

test = Join(a2, "/") & "." & a1(UBound(a1)) 

End Function 

или это можно сделать, используя формулу

=SUBSTITUTE(A1,"/",".",(LEN(A1)-LEN(SUBSTITUTE(A1,"/",""))))

+0

Это заменит косые черты также в середине строки. – z32a7ul

0

Я думаю, вы должны использовать функцию Right для этого, чтобы избежать замены «/ 15» в середине строки.

Public Function ReplaceRight(strInput As String) As String 
    If Right(strInput, 3) = "/15" Then 
     ReplaceRight = Left(strInput, Len(strInput) - 3) & ".15" 
    Else 
     ReplaceRight = strInput 
    End If 
End Function 

С Формула Excel:

=IF(RIGHT(F215,3)="/15",LEFT(F215,LEN(F215)-3)&".15",F215)