正如我的问题的标题所暗示的,我需要列出一个范围内的名称并将其重新格式化,以使它们成为第一个缩写,后跟一个句点和一个空格以及姓氏。例如:
John Doe
将成为:
J。母鹿
这是我编写的VBA函数,但似乎不起作用:
Function PLAYERNAMEREFORMAT(Ref As Range) As String
Dim Cell As Range
Dim fullName As String
Dim firstName As String
Dim lastName As String
Dim initial As String
For Each Cell In Ref
fullName = Cell.Value
firstName = Split(fullName)(0)
lastName = Split(fullName)(1)
initial = Left(firstName, 1)
Next Cell
PLAYERNAMEREFORMAT = initial + “.” + lastName
End Function
有人知道我的代码有什么问题吗?
答案 0 :(得分:4)
将Option Explicit
放在函数顶部。
如果这样做,您的圆点左右的引号Variable not Defined
会出现“ ”
错误。这些必须是常规引号" "
。
转到菜单Tools/Options/Editor
并选择“需要变量声明”。这样可以确保使用Option Explicit创建任何新模块。
我不明白为什么这不是默认设置。
PS:您还需要在点后添加空格。 ". "
答案 1 :(得分:2)
为此,请尝试使用以下公式代替
例如如果您的名字在单元格B1中,那么
= LEFT(B1,1)&“。”&RIGHT(B1,LEN(B1)-SEARCH(“”,B1))