我是vba的新手,所以请原谅任何词汇失误。我的函数是一个非常基本的if语句。在调试时运行很好,但是当我从查询中调用它时,我得到了可怕的“查询中未定义的函数”错误。以下是我从我的查询中调用它的方法:color2:ItemColor([Color])。目的是获取库存ID并根据ID代码提取颜色。此函数最终将扩展为大量颜色(超过7),因此我无法在查询中使用iif函数。我想先用几种颜色选项来测试vba。
这是我的代码:
Public Sub ItemColor()
If [Color] = "01" Then
MsgBox "natural"
Else
MsgBox "shell"
End If
End Sub
[颜色]是同一查询中的字段。 [颜色]是使用Mid函数从ID字段中提取的字符串。这个vba函数可以在这样的字段上工作吗?
可能是因为我正在使用msgbox吗?我尝试使用Dim,(见下面的代码),但它仍然无法正常工作。也许我的语法错了?
Public Sub ItemColor()
Dim appearance As String
If [Color] = "01" Then
appearance "natural"
Else
appearance "shell"
End If
End Sub
答案 0 :(得分:1)
首先,您需要一个函数来返回一个值,这就是为什么错误表明未定义的函数。如果您想根据提供的数字硬编码返回值,请尝试以下代码:
Public function getColor(colorID) as string
Dim strColor as string
Select case colorID
Case 1
StrColor = "color name"
Case 2
Strcolor = "different color"
End select
Getcolor = strcolor
End function