现在解法是用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