我想在另一個陣列應用WorksheetFunction.Small這樣:WorksheetFunction.Small:如何定義數組
ReDim ArrSmall(Iterations, 20)
For l = 1 To Iterations
For k = 1 To 20
ArrSmall(l, k) = WorksheetFunction.Small(ArrResult(l, k), l)
Next k
Next l
我知道這個部分:ArrResult(l,k),
是錯誤的,因爲它要求一個範圍,而不是一個單一的我輸入的號碼。但是,我不確定如何在代碼中定義範圍。
這是可能的或我必須輸出的值在一個TempSheet,然後回到一個數組?我認爲一個解決方案是調用整個數組的列,但我不知道如何。
編輯:
我設法寫一個啞代碼不正是我想要什麼,但怪異的部分是,當我申請相同的,以我的原代碼,所有的值被弄混(它確實彌補值據我所知)。請參閱以下代碼:
Sub test()
ReDim ArrTest(10, 1)
ReDim ArrSmall(10, 1)
ArrTest = Range("A1:A10")
For i = 1 To 10
ArrSmall(i, 1) = WorksheetFunction.Small(ArrTest, i)
Cells(i, 2) = ArrTest(i, 1)
Cells(i, 3) = ArrSmall(i, 1)
Next i
嘗試在新循環前清除整個數組。也許這可以修復它...
我正在研究'Application.Index'現在,也許是一個解決方案。 –
「Small」函數的第一個參數可以是一維數組或範圍。行參數爲'0'的'Index'函數會返回一個完整的'列'(或者你的數組的單個向量,但以這種方式使用索引可能比創建一維數組要慢 - 如果速度慢,你需要測試 –
'ArrSmall(l,k)= WorksheetFunction.Small(Application.Index(ArrResult,0,k),l)'我現在有這個,但它仍然返回1004錯誤 –