【发布时间】:2017-06-28 18:49:34
【问题描述】:
我对 VBA 完全陌生。我需要编写一个程序,它将生成一个整数数组并找到最小元素的索引。我收到了这个错误 “类型不匹配:需要数组或用户定义的类型。”我查看了许多类似的问题,但无法找出问题所在。
Function random_integer(Min As Integer, Max As Integer)
random_integer = Int((Max - Min + 1) * Rnd + Min)
End Function
Function generate_array(Size As Integer)
Dim Arr(Size)
For i = 0 To UBound(Arr)
Arr(i) = random_integer(i - 10, i + 10)
Next
generate_array = Arr
End Function
Function find_index_of_min_elem(ByRef Arr() As Variant)
Dim Min As Integer
Min = Arr(0)
Dim MinIndex As Integer
MinIndex = 0
For i = 1 To UBound(Arr)
If Arr(i) < Min Then
Min = Arr(i)
MinIndex = i
End If
Next
find_index_of_min_elem = MinIndex
End Function
Sub task6()
A = generate_array(20)
IndexOfMinElemInA = find_index_of_min_elem(A)
MsgBox IndexOfMinElemInA
End Sub
【问题讨论】:
-
I am completely new to VBA....这段代码是你写的吗? -
是的。我有其他语言的经验
-
您需要删除
snake_case并采用PascalCase作为成员名称。在 VBA 中,下划线有特殊的含义;你的函数不能重构为这样命名的接口。