求vb二维数组下标

用public sub 做最大值下标
2025-03-03 17:31:27
推荐回答(4个)
回答1:

Private Sub Command1_Click()
Dim a(1 To 3, -100 To 100) As Integer, b(4) As Integer
boundA a, b
Debug.Print "第一维下标为:"; b(1), "第一维上标为:"; b(2), "第二维下标为:"; b(3), "第二一维上标为:"; b(4)
End Sub
Public Sub boundA(a() As Integer, b() As Integer)
b(1) = LBound(a, 1)
b(2) = UBound(a, 1)
b(3) = LBound(a, 2)
b(4) = UBound(a, 2)
End Sub

回答2:

问题貌似:随机产生一个二维数组a(m,n),求出最大元素值的下标(x,y)

如果这样理解正确的话,代码如下:

(不用任何控件,把代码粘贴上就可以运行)
Private Sub Form_Click()
Dim A() As Integer, M As Integer, N As Integer
Dim I As Integer, J As Integer, X As Integer, Y As Integer
M = Int(Val(InputBox("二维数组的行数", "输入", 5)))
N = Int(Val(InputBox("二维数组的列数", "输入", 7)))
ReDim A(M, N)
Randomize
For I = 1 To M
For J = 1 To N
A(I, J) = Int(Rnd * 100)
Print A(I, J);
Next
Print
Next
X = 1
Y = 1
For I = 1 To M
For J = 1 To N
If A(X, Y) < A(I, J) Then
X = I
Y = J
End If
Next
Next
Print "最大值元素坐标是 A("; X; ","; Y; ")="; A(X, Y)
End Sub

回答3:

是下界吧?
用LBound函数:LBound(array,dim)
其中array是数组名,dim是数组维数
例如:
Public Sub main()
Dim a(1 To 4,6 To 8) As Long
MsgBox LBound(a, 1) '显示1
MsgBox LBound(a, 2) '显示6
MsgBox UBound(a, 1) '显示4
MsgBox UBound(a, 2) '显示8
End Sub

回答4:

Dim maxi As Integer

Public Sub maxnum(n As Integer)
For i = 0 To UBound(n)
If n(i) > maxn Then maxn = n(i): maxi = i
Next i
End Sub

maxi就是