Excel 如何将数组传递给函数
我尝试将数组传递给VBA EXCEL中的函数。我找不到合适的例子 我尝试将数组传递给函数 函数内声明 我尝试将变量数组设置为variant或ByRef,但不起作用 我怎么了Excel 如何将数组传递给函数,excel,vba,Excel,Vba,我尝试将数组传递给VBA EXCEL中的函数。我找不到合适的例子 我尝试将数组传递给函数 函数内声明 我尝试将变量数组设置为variant或ByRef,但不起作用 我怎么了 Dim Retarray(1 To 6, 1 To 2) As String 这是我的阵列 然后尝试传递到函数as Smap = checkDevNo(Retarray, Right(CellArray(i, 1), 1)) 这是我的函数声明 Function checkDevNo(ByRef aaray() As
Dim Retarray(1 To 6, 1 To 2) As String
这是我的阵列
然后尝试传递到函数as
Smap = checkDevNo(Retarray, Right(CellArray(i, 1), 1))
这是我的函数声明
Function checkDevNo(ByRef aaray() As String, aa As Character) As String
Select Case aa
Case "1"
For j = 1 To 6
If aaray(j, 1) = 6 Then
checkDevNo = j
End If
Next j
Case "2"
For j = 1 To 6
If aaray(j, 1) = 7 Then
End If
Next j
End Select
End Function
编译错误用户定义类型未定义???IIRC,
字符
不是VBA类型。您应该将其作为字符串
或字节
传递。在Visual Basic中,单个字符也可以存储在固定长度的字符串中(Dim myChar As String*1
),但方法参数不支持该语法
因此,您的函数声明应该如下所示:
Function checkDevNo(ByRef aaray() As String, aa As String) As String
...
End Function
如果我们讨论的是Excel VBA,那么您需要执行以下操作:
Function checkDevNo(aaray As Variant, aa As String) As String
Select Case aa
Case "1"
For j = 1 To 6
If aaray(j, 1) = 6 Then
checkDevNo = j
End If
Next j
Case "2"
For j = 1 To 6
If aaray(j, 1) = 7 Then
End If
Next j
End Select
End Function
编辑器高亮显示单词
字符
,因为它警告未定义用户定义的类型…请注意,ByRef
是隐式默认值:该函数的两个参数都是通过引用传递的。一个是显式的,另一个是隐式的。