2015-10-19 73 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如果有幫助,請考慮標記爲正確。 –