我想只为姓氏着色。 例如:
Rohit Kumar Singh
Rahul Ranjan Singh
Kaushal Kishor Singh
我想只为姓氏着色。有或没有vba是可能的。
答案 0 :(得分: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)
这将允许您根据所需的模式获得任何单词。
它也基于选择。