返回列表 上一主題 發帖

VBA & WorkSheetFunction.min 調出陣列極小值

回復 1# alumi
上面是錯誤的程式碼,  只是回傳 11 , 而非 正確值 9
沒有錯啊 !
Debug.Print WorksheetFunction.Min(Array(ary(2), ary(4)))
ary(2)=15   ary(4)=11   那有 9.
試試  Debug.Print WorksheetFunction.Min(ary))

TOP

回復 5# alumi
自訂函數
  1. Option Explicit
  2. Sub Ex()
  3.     Dim xi As Integer, Ary(1 To 10) As Integer
  4.     For xi = 1 To 10
  5.         Ary(xi) = Int(100 * Rnd)       '亂數  
  6.     Next
  7.     MsgBox 區間值("Min", Ary, 5, 10)  ' Ary(5):Ary(10) 的區間
  8. End Sub
  9. Function 區間值(Max_Or_Min As String, 陣列 As Variant, 區間1 As Integer, 區間2 As Integer) As Long
  10.    Dim xi As Integer, AR()
  11.    ReDim AR(區間1 To 區間2)      '複製Ary(5):Ary(10) 的區間的陣列元素數
  12.    For xi = 區間1 To 區間2
  13.         AR(xi) = 陣列(xi)
  14.     Next
  15.     If UCase(Max_Or_Min) = "MAX" Then
  16.         區間值 = WorksheetFunction.Max(AR)
  17.     Else
  18.         區間值 = WorksheetFunction.Min(AR)
  19.     End If
  20. End Function
複製代碼

TOP

        靜思自在 : 人要知福、惜福、再造福。
返回列表 上一主題