现在解法是用for ii= 1 to nn ...... next ii方法.
For ii = 0 To UBound(GB5782Array)
If Bolt = GB5782Array(ii)(0) Then
.......
Exit Function
End If
Next ii
通过循环和Exit方法来实现,请问各位大侠还有其它什么方法.
--------------------
数组及数据类型见下面程序
--------------------
Public Type GB5782_Type
螺纹规格 As String
e As Double
S As Double
K As Double
End TypePublic Function GB5782Data(Bolt As String) As GB5782_Type
Dim GB5782Array(14) As Variant
GB5782Array(0) = Array("M5", 8.63, 8, 3.5)
GB5782Array(1) = Array("M6", 10.89, 10, 4)
GB5782Array(2) = Array("M8", 14.2, 13, 5.3)
GB5782Array(3) = Array("M10", 17.59, 16, 6.4)
GB5782Array(4) = Array("M12", 19.85, 18, 7.5)
GB5782Array(5) = Array("M16", 26.17, 24, 10)
GB5782Array(6) = Array("M20", 32.95, 30, 12.5)
GB5782Array(7) = Array("M24", 39.55, 36, 15)
GB5782Array(8) = Array("M30", 50.85, 46, 18.7)
GB5782Array(9) = Array("M36", 60.79, 55, 22.5)
GB5782Array(10) = Array("M42", 71.3, 65, 26)
GB5782Array(11) = Array("M48", 82.6, 75, 30)
GB5782Array(12) = Array("M56", 93.56, 85, 35)
GB5782Array(13) = Array("M64", 104.86, 95, 40)
GB5782Array(14) = Array("M27", 45.2, 41, 17)
'GB5782Array(15) = Array("M64", 104.86, 95, 40)
For ii = 0 To UBound(GB5782Array)
With GB5782Data
If Bolt = GB5782Array(ii)(0) Then
.螺纹规格 = GB5782Array(ii)(0)
.e = GB5782Array(ii)(1)
.S = GB5782Array(ii)(2)
.K = GB5782Array(ii)(3)
Exit Function
End If
End With
Next ii
End Function
GB5782Array的下标与M5中的5找某种大概的对应关系
这样,ii不用总是从0开始搜索,速度能快一些
但是,如果只有这么几种规格的螺栓,根本无所谓了,意义不大