Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 尝试在VBA中创建多维数组时出现语法错误_Ms Access_Vba - Fatal编程技术网

Ms access 尝试在VBA中创建多维数组时出现语法错误

Ms access 尝试在VBA中创建多维数组时出现语法错误,ms-access,vba,Ms Access,Vba,我正在尝试为Microsoft Access创建一个VBA脚本,该脚本从名称字段中提取标题(如先生、夫人、博士等),然后返回该标题的特定版本。我试图创建一个多维数组,其中一列中包含标题,另一列中包含清理后的标题,但是当我试图编译脚本时,出现了语法错误。我知道语法错误是因为多维数组,因为我基于以前的脚本,该脚本用于查找旧标题,并且运行良好我遗漏了什么导致语法错误?我没有正确调用多维数组吗?诚然,我不熟悉VBA脚本,而且编程一般都很生疏,所以如果我遗漏了一些简单的东西,请原谅 Public

我正在尝试为Microsoft Access创建一个VBA脚本,该脚本从名称字段中提取标题(如先生、夫人、博士等),然后返回该标题的特定版本。我试图创建一个多维数组,其中一列中包含标题,另一列中包含清理后的标题,但是当我试图编译脚本时,出现了语法错误。我知道语法错误是因为多维数组,因为我基于以前的脚本,该脚本用于查找旧标题,并且运行良好我遗漏了什么导致语法错误?我没有正确调用多维数组吗?诚然,我不熟悉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
公共函数以字符串形式查找标题(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

非常感谢。你是对的数组语句是错的。谢谢。你是对的数组语句是错误的。