Excel VBA-未定义子或函数

Excel VBA-未定义子或函数,excel,vba,Excel,Vba,我的代码中不断出现未定义的子函数或函数编译错误 我试图完成的是通过在一个单元格中输入两个项目描述符,然后为该项目生成一个唯一的字母数字序列号,然后将其输出到屏幕上,并将其保存在另一张纸上(无可否认,这张纸甚至还没有开始工作) 然而,当我试图让我的SerialGenerator函数工作时,我一直遇到这个编译错误的问题 我试图调用函数以字符串形式返回序列号,并将其放入名为“serial”的变量中,以便将其输出到屏幕上,然后将其存储在另一张表上 Public Sub GenerateSerialNum

我的代码中不断出现未定义的子函数或函数编译错误

我试图完成的是通过在一个单元格中输入两个项目描述符,然后为该项目生成一个唯一的字母数字序列号,然后将其输出到屏幕上,并将其保存在另一张纸上(无可否认,这张纸甚至还没有开始工作)

然而,当我试图让我的SerialGenerator函数工作时,我一直遇到这个编译错误的问题

我试图调用函数以字符串形式返回序列号,并将其放入名为“serial”的变量中,以便将其输出到屏幕上,然后将其存储在另一张表上

Public Sub GenerateSerialNumber_Click()
    
    Dim itemname As String
    Dim description As String
    Dim serial As String
    
    itemname = Range("c3").Value
    description = Range("e3").Value
    serial = SerialGenerator(finResult)
    
    Range("c21").Value = itemname
    Range("E21").Value = description
    
    
    
    MsgBox "Serial Number Generated."
    
    
End Sub
    
Function SerialGenerator(finResult)
    
    Dim result As String
    Dim myReturn As String
    
    myReturn = Text(RandBetween(0, 9999), "0000") & CHAR(RandBetween(65, 90)) & CHAR(RandBetween(65, 90))
    
    finResult = myReturn
    
    
End Function
  • 您正在合并公式和VBA
    Text
    randbween
    Char
    是公式。它们的VBA等价物是
    格式
    工作表函数.randbween
    Chr
  • SerialGenerator
    返回值更符合逻辑
Public函数SerialGenerator()作为字符串
使用工作表功能
SerialGenerator=格式$(.randthever(0,9999),“0000”)和_
Chr$(.RandBetween(65,90))和_
Chr$(.RandBetween(65,90))
以
端函数
然后打电话给

serial=SerialGenerator

您尚未定义变量finResult,将其传递给serialgenerator函数“这更有意义。”。我认为这些公式和VBA可以一起工作。谢谢你的信息和帮助@DanielHernandez如果这回答了您的问题,请投票/将其标记为已解决: