Ms access 尝试在VBA中创建多维数组时出现语法错误
我正在尝试为Microsoft Access创建一个VBA脚本,该脚本从名称字段中提取标题(如先生、夫人、博士等),然后返回该标题的特定版本。我试图创建一个多维数组,其中一列中包含标题,另一列中包含清理后的标题,但是当我试图编译脚本时,出现了语法错误。我知道语法错误是因为多维数组,因为我基于以前的脚本,该脚本用于查找旧标题,并且运行良好我遗漏了什么导致语法错误?我没有正确调用多维数组吗?诚然,我不熟悉VBA脚本,而且编程一般都很生疏,所以如果我遗漏了一些简单的东西,请原谅Ms access 尝试在VBA中创建多维数组时出现语法错误,ms-access,vba,Ms Access,Vba,我正在尝试为Microsoft Access创建一个VBA脚本,该脚本从名称字段中提取标题(如先生、夫人、博士等),然后返回该标题的特定版本。我试图创建一个多维数组,其中一列中包含标题,另一列中包含清理后的标题,但是当我试图编译脚本时,出现了语法错误。我知道语法错误是因为多维数组,因为我基于以前的脚本,该脚本用于查找旧标题,并且运行良好我遗漏了什么导致语法错误?我没有正确调用多维数组吗?诚然,我不熟悉VBA脚本,而且编程一般都很生疏,所以如果我遗漏了一些简单的东西,请原谅 Public
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
公共函数以字符串形式查找标题(inName)
“返回清理过的标题
将strName设置为字符串
像线一样暗的线
作为变体的模糊标题
标题=数组(“Ms”、“Ms”)、数组(“Miss”、“Miss”)、数组(“Mrs”、“Mr”)、数组(“Master”、“Master”)、数组(“Rev”、“Rev”)、数组(“牧师”、“牧师”)、数组(“Fr”、“Fr”)、数组(“父亲”、“父亲”)、数组(“医生”、“博士”)、数组(“Atty”、“Atty”)、数组(“律师”、“律师”)、数组(“Prof”、“教授”),数组(“教授”、“教授”)、数组(“议员”、“议员”)、数组(“荣誉”、“荣誉”)、数组(“主席”、“主席”)、数组(“总统”、“总统”)、数组(“州长”、“州长”)、数组(“州长”)
昏暗的我
I=0
strTitle=“”
'将输入与标题列表进行比较
做
如果名称类似于标题(I,0)和“*”,则
strTitle=标题(I,1)
其他的
I=I+1
如果结束
循环While(strTitle=”“和I
问题在于数组不是多维的,而是嵌套的。您可能得到的错误不是语法错误,而是“下标超出范围”。错误。您需要更改阵列状态,如下所示:
Titles(I, 0)
应该是
Titles(I)(0)
此外,在您的最后一行中,您还有:
cleanTitles = strTitle
我想你的意思是:
findTitles = strTitle
问题是数组不是多维的,而是嵌套的。您可能得到的错误不是语法错误,而是“下标超出范围”。错误。您需要更改阵列状态,如下所示:
Titles(I, 0)
应该是
Titles(I)(0)
此外,在您的最后一行中,您还有:
cleanTitles = strTitle
我想你的意思是:
findTitles = strTitle
非常感谢。你是对的数组语句是错的。谢谢。你是对的数组语句是错误的。