gpt4 book ai didi

vba - 结合 VBA 和公式来检查独特的输出

转载 作者:行者123 更新时间:2023-12-04 20:20:06 26 4
gpt4 key购买 nike

好的,我有这个公式可以根据名字和姓氏列表生成用户名。现在,虽然这可行,但我希望单元格改为引用我自己的 VBA 函数。但是,由于代码少得多,我仍然想使用原始公式。

我有这个公式:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(LOWER(LEFT(table[[#This Row];[Firstname:]])&table[[#This Row];[Lastname:]]);"æ";"a");"ø";"o");"å";"a")

这基本上会生成用户名。但是,我想通过一个单独的函数来运行它,以确定用户名是否已经被使用。如果是,它应该生成一个稍微不同的用户名。

我在想一些事情:
Public Function genUserName(ByVal strFirstName, strLastName As String)
Dim strUsername As String

Set objDomain = GetObject("WinNT://grunnarbeid2.local")
objDomain.Filter = Array("User")

'FormulaR1C1 = "=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(LOWER(LEFT(tableFaste[[#This Row];[Fornavn:]])&tableFaste[[#This Row];[Etternavn:]]);""æ"";""a"");""ø"";""o"");""å"";""a"")"
'strUsername = ActiveCell.FormulaR1C1


blnFound = False

For Each objUser In objDomain
If objUser.Name = strUsername Then
blnFound = True
Exit For
End If
Next

genUserName = strUsername

End Function

那么,我该如何结合这些呢?

最佳答案

我建议限制 genUserName 的功能只是检查唯一性,并将现有公式的结果传递给它:

Public Function genUserName(ByVal strUsername As String)
Set objDomain = GetObject("WinNT://grunnarbeid2.local")
objDomain.Filter = Array("User")
blnFound = False
For Each objUser In objDomain
If objUser.Name = strUsername Then
blnFound = True
Exit For
End If
Next
genUserName = strUsername
End Function

然后从像这样的单元格中调用它
=genUserName(SUBSTITUTE( ... ))

关于vba - 结合 VBA 和公式来检查独特的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8118660/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com