返回列表 上一主題 發帖

match 搜尋不同工作表可以指定變數嗎?

=Application.match(lookup_value,要match的陣列,match_type))

Lookup_value: 可以是數值或文字
Match_type 為可選數 -1,0,或1。

Match_type參數指定將Excel匹配lookup_value的與值查找的陣列。此參數的默認值是1。下面描述Match_type用法。

1或省略 match認為是小於或等於最大值lookup_value的。在值查找的陣列參數必須被放置在上升順序,例如:...- 2,-1,0,1,2,...,AZ,FALSE,TRUE。
0 Match找到第一個值,該值正好等於lookup_value的。在中值查找的陣列參數可以是任意順序。
-1 Match發現的最小值大於或等於lookup_value的。在值查找的陣列參數必須被放置在遞減順序,例如:TRUE,FALSE ZA,... 2,1,0,-1,-2,...,等等。

TOP

Sub zz()
Dim no_ar, arr, sh_ar
sh_ar = [{"數值1","陣列1";數值2","陣列2";數值3","陣列3"}]
For i = 1 To UBound(sh_ar)
    With Sheets(sh_ar(i, 1))
        Set no_ar = .Range("a1:b" & .Cells(Rows.Count, 1).End(3).Row)
            arr = Sheets(sh_ar(i, 2)).[a1].CurrentRegion
            For j = 1 To no_ar.Rows.Count
                no_ar(j, 2) = Application.Match(no_ar(j, 1), arr, 0)
                    Next: End With: Next
Set no_ar = Nothing
End Sub

TOP

簡寫的常數二維陣列, 即 = Application.Transpose(Application.Transpose(Array(Array("數值1","陣列1"), Array("數值2","陣列2"), Array("數值3","陣列3"))))

TOP

打Application.WorkSheetFunction.Match...跟打Application.Match...有什麼不一樣?
又是簡寫

TOP

多謝GBKEE版主指教, 懂了。

TOP

        靜思自在 : 布施如播種,以歡喜心滋潤種子,才會發芽。
返回列表 上一主題