Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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
Excel 子程序'中的语法错误;测试';_Excel_Vba_Syntax - Fatal编程技术网

Excel 子程序'中的语法错误;测试';

Excel 子程序'中的语法错误;测试';,excel,vba,syntax,Excel,Vba,Syntax,我在VBA中有以下子功能: Sub test() index_match_array(Range("D5").Value,Range("BZ:BZ").DataSeries,"Hardware",1,2) End Sub 这将调用启动的函数: Option Explicit Function index_match_array(loookup As String, table_array As Range, criteria_search As String, criteria_lin

我在VBA中有以下子功能:

Sub test()
    index_match_array(Range("D5").Value,Range("BZ:BZ").DataSeries,"Hardware",1,2)
End Sub
这将调用启动的函数:

Option Explicit
Function index_match_array(loookup As String, table_array As Range, criteria_search As String, criteria_line_add As Integer, return_line_add As Integer) As String()

Dim lookup_array() As String
Dim result_array() As String
...
...
index_match_array = result_array

End Function
编译时,我收到错误消息:

编译错误: 语法错误


我怀疑这与第二个参数有关,即范围1,但我不确定?

'数据系列返回类型是Variant,请将表数组更改为Variant '函数在数组中,请将函数索引\u匹配\u数组更改为字符串

Option Explicit
Sub test()

    Dim sString(10) As String
    sString(1) = index_match_array(Range("D5").Value, Range("BZ:BZ").DataSeries, "Hardware", 1, 2)

End Sub


Function index_match_array(loookup As String, table_array As Variant, criteria_search As String, criteria_line_add As Integer, return_line_add As Integer) As String

Dim lookup_array(10) As String
Dim result_array(10) As String

result_array(1) = "Test Value"

index_match_array = result_array(1)

End Function

'数据系列返回类型为Variant,请将表_数组更改为Variant '函数在数组中,请将函数索引\u匹配\u数组更改为字符串

Option Explicit
Sub test()

    Dim sString(10) As String
    sString(1) = index_match_array(Range("D5").Value, Range("BZ:BZ").DataSeries, "Hardware", 1, 2)

End Sub


Function index_match_array(loookup As String, table_array As Variant, criteria_search As String, criteria_line_add As Integer, return_line_add As Integer) As String

Dim lookup_array(10) As String
Dim result_array(10) As String

result_array(1) = "Test Value"

index_match_array = result_array(1)

End Function

索引匹配数组范围(“D5”)。值,范围(“BZ:BZ”)。数据系列,“硬件”,1,2
没有()可能?@VincentG谢谢,这解决了sytnax问题,但现在得到一个运行时错误“424”:需要对象。当函数想要返回字符串数组时,单击debug时,
索引匹配数组范围(“D5”)…
以黄色突出显示。当它被呼叫时,它必须去某个地方。您需要一个变量,该变量与函数调用相关。Scott为true,但这不是您收到错误消息的原因。第二个参数应为Range类型的对象,并传递一个变量值(DataSeries)。谢谢,这很有意义。那么我是否需要将.Dataseries更改为其他内容?
index\u match\u array Range(“D5”)。值,Range(“BZ:BZ”)。Dataseries,“Hardware”,1,2
没有()可能?@VincentG谢谢,这解决了sytnax问题,但现在得到一个运行时错误“424”:需要对象。当函数想要返回字符串数组时,单击debug时,
索引匹配数组范围(“D5”)…
以黄色突出显示。当它被呼叫时,它必须去某个地方。您需要一个变量,该变量与函数调用相关。Scott为true,但这不是您收到错误消息的原因。第二个参数应为Range类型的对象,并传递一个变量值(DataSeries)。谢谢,这很有意义。那么我是否需要将.Dataseries更改为其他内容?谢谢,只需将数据系列更改为variant from range即可修复它!谢谢,只需将数据系列更改为variant from range即可修复它!