2015-10-19 2 views

ответ

1

В VBA это сделать:

Sub rohit() 
Dim cel As Range 
Dim i As Integer 
For Each cel In Selection.Cells 
    If cel.value <> "" Then 
     Dim lastname As String 
     if Ubound(Split(cel, " ")) > 0 then 
      lastname = Split(cel, " ")(1) 
     Else 
      lastname = cel.Value 
     End If 
     For i = 1 To Len(cel) 
      If Mid(cel, i, Len(lastname)) = lastname Then 
       cel.Characters(i, Len(lastname)).Font.Color = vbRed 
       Exit For 
      End If 
     Next i 
    End If 
Next cel 

End Sub 

Это изменит второе слово в строке.

Ключ к которому слово изменяется с этой строкой:

lastname = Split(cel, " ")(1) 

Split функция возвращает массив, первое слово равно 0, второй 1 и так далее. Число после функции определяет, какое слово в этом массиве будет возвращено.

Если количество слов неизвестны и последнее слово было тогда использовать:

lastname = Split(cel, " ")(Ubound(Split(cel, " "))) 

Это становится верхней границей массива или последним. Если вы хотите, предпоследний, и она будет меняться, то используйте:

lastname = Split(cel, " ")(Ubound(Split(cel, " "))-1) 

Это позволит вам получить любое слово в зависимости от желаемого рисунка.

Также он основан на выборе.

+0

@rohitsingh Это работало для вас? –

+0

Большое вам спасибо. –

+0

@RohitSingh Если это помогло, пожалуйста, обратите внимание на правильность маркировки. –

Смежные вопросы