VBA将字符串放在正在执行函数的单元格中



我有一个单元格,我试图根据输入参数显示不同的字符串,但我不明白如何返回/打印字符串到单元格。没有语法错误,但单元格只是保持空白。下面是我的代码:

Function Email(Region As String) As String
If Region = Atlantic Then
Email = "email1@gmail.com"
ElseIf Region = West Then
Email = "email2@gmail.com"
ElseIf Region = Pacific Then
Email = "email3@gmail.com"
ElseIf Region = Ontario Then
Email = "email4@gmail.com"
ElseIf Region = Atlantic Then
Email = "email5@gmail.com"
ElseIf Region = Quebec Then
Email = "email5@gmail.com"
Else: Region = "x"
End If
End Function

这是基于您正在测试文字字符串的假设。"Atlantic",你没有一个变量或其他地方的字符串返回函数称为Atlantic


修复您现有的代码,它最终看起来像这样-(注意,我已经删除了第二次大西洋检查)-

Function Email(Region As String) As String
If Region = "Atlantic" Then
Email = "email1@gmail.com"
ElseIf Region = "West" Then
Email = "email2@gmail.com"
ElseIf Region = "Pacific" Then
Email = "email3@gmail.com"
ElseIf Region = "Ontario" Then
Email = "email4@gmail.com"
ElseIf Region = "Quebec" Then
Email = "email5@gmail.com"
Else: Email = "x"
End If
End Function

更容易阅读的方法是使用Select Case:

Function Email(Region As String) As String
Select Case Region
Case "Atlantic"
Email = "email1@gmail.com"
Case "West"
Email = "email2@gmail.com"
Case "Pacific"
Email = "email3@gmail.com"
Case "Ontario"
Email = "email4@gmail.com"
Case "Quebec"
Email = "email5@gmail.com"
Case Else
Email = "x"
End Select
End Function

最新更新