我只想给姓氏上色。例如:
Rohit Kumar Singh
Rahul Ranjan Singh
Kaushal Kishor Singh
我只想给姓氏上色。可以使用vba,也可以不使用vba。
发布于 2015-10-20 01:49:42
在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)
这将允许您根据所需的模式获取任何单词。
它也是基于选择的。
https://stackoverflow.com/questions/33220625
复制相似问题