我正在尝试为Microsoft Access创建一个VBA脚本,该脚本从名称字段中提取标题(例如Mr.,Mrs.,Dr。等),然后返回该标题的特定特定版本。我试图创建一个多维数组,其中标题位于一列中,而清除后的标题位于另一列中,但是当我尝试编译脚本时,出现语法错误。我知道语法错误是由于多维数组,因为我基于以前用于查找旧标题的脚本对此进行了工作,并且效果很好。我缺少什么导致这是语法错误?我没有正确调用多维数组吗?诚然,我是VBA脚本的新手,并且对程序设计一无所知,因此,如果我缺少一些简单的东西,请原谅我。
Public Function findTitles(inName) As String
' Returns cleaned up titles
Dim strName As String
Dim strTitle As String
Dim Titles As Variant
Titles = Array(Array("Ms", "Ms."), Array("Miss ", "Miss"), Array("Mrs", "Mrs."), Array("Mr", "Mr."), Array("Master", "Master"), Array("Rev", "Rev."), Array("Reverend", "Reverend"), Array("Fr", "Fr."),Array("Father", "Father"), Array("Dr", "Dr."), Array("Doctor", "Doctor"), Array("Atty", "Atty."), Array("Attorney", "Attorney"),Array("Prof", "Prof."), Array("Professor", "Professor"), Array("Hon", "Hon."), Array("Honorable", "Honorable"), Array("Pres", "Pres."), Array("President", "President"), Array("Gov", "Gov."), Array("Governor", "Governor"))
Dim I
I = 0
strTitle = ""
'Compare input to list of Titles
Do
If inName Like Titles(I, 0) & " *" Then
strTitle = Titles(I, 1)
Else
I = I + 1
End If
Loop While (strTitle = "" And I < UBound(Titles))
cleanTitles = strTitle
End Function
问题在于您的数组不是多维的,而是嵌套的。您可能遇到的错误不是语法错误,而是“下标超出范围”。错误。您需要像这样更改数组语句:
Titles(I, 0)
应该
Titles(I)(0)
另外,在最后一行上,您有:
cleanTitles = strTitle
我想你的意思是:
findTitles = strTitle
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句