【发布时间】:2016-10-12 02:15:45
【问题描述】:
我想要的是放置宏:名字 |姓氏 |用户名
调用 userNameBuilder 函数时出现错误,即使它返回一个字符串并期待一个字符串
Dim firstName, lastName As String
Set sh = ActiveSheet
Dim counter = 0
For Each entry In exUser.GetDirectReports() 'exUser is an exchangeUser
counter = counter + 1
firstName = entry.GetExchangeUser.firstName
lastName = entry.getExchangeUser.lastName
sh.Cells(counter, 1).value = firstName
sh.Cells(counter, 2).value = lastName
sh.Cells(counter, 3).value = userNameBuilder(firstName, lastName)
Next
这是代码抱怨的我的 userNameBuilder 函数。
当我注释掉“sh.Cells(counter, 3).value = userNameBuilder(firstName, lastName)”时,代码运行良好,只是没有生成用户名。
用户名是姓氏的前 5 个字母加上名字的第一个字母。如果姓氏太短,则从头开始填充名字的字符,直到用户名长度为6个字符。
Public Function userNameBuilder(ByVal firstName As String, ByVal lastName As String) As String
Dim newLastName As String
Dim newUserName As String
If (lastName >= 5) Then
newLastName = Left(lastName, Len(lastName) - 5)
userNameBuilder = (newLastName & Left(firstName, 1))
ElseIf (lastName < 5 && lastName > 0) Then
userNameBuilder = lastName & Left(firstName, 5 - (Len(lastName)))
Else
userNameBuilder = vbNullString
End If
End Function
【问题讨论】:
-
这可能与您的问题无关,但 “姓氏的前 5 个字母” 将是
newLastName = Left(lastName,5) -
哦对了