返回列表 上一主題 發帖

[發問] 如何在match中引用2維陣列

回復 5# yen956
我將准提部林版大的自訂函數稍稍修改了一些,
你用 [F8] 去 Debug 一次,便會全盤明瞭了。
我將結果改寫到 K 欄,以便你進行比對寫入值。
  1. '  自訂函數,彈性較好些:  By 准提部林
  2. '  J4.公式:=get_wl(B$3:E$11,H4,I4)
  3. Function GET_WL(xA As Variant, Va As Range, Vb As Range) As String
  4.     Dim Arr, AA, j&, Jm%, T$
  5.    
  6.     Arr = xA
  7.     For j = 1 To UBound(Arr)
  8.         If Arr(j, 2) <> "" Then
  9.             Jm = 0:  AA = Split(Arr(j, 2) & "~", "~")
  10.             If Va > Val(AA(0)) And Va <= Val(AA(1)) Then T = Arr(j, 1): Jm = 1
  11.         End If
  12.         If Jm = 1 Then
  13.             AA = Split(Arr(j, 4) & "~", "~")
  14.             If Vb > Val(AA(0)) And Vb <= Val(AA(1)) Then GET_WL = T & "_" & Arr(j, 3): Exit For
  15.         End If
  16.     Next j
  17. End Function

  18. Sub Ex()
  19.     Dim cts As Integer
  20.    
  21.     For cts = 0 To 5
  22.        [K4].Offset(cts) = GET_WL(Range("B$3:E$11"), [H4].Offset(cts), [I4].Offset(cts))
  23.     Next cts
  24. End Sub
複製代碼

TOP

本帖最後由 c_c_lai 於 2015-12-8 10:24 編輯

回復 3# 准提部林
請教版大,
請問我在K11欄內輸入  =get_wl(B$3:E$11,H4,I4)
為何會出現 #REF! 字樣?
自訂函數在 Excel 要如何設定其定義讓它能被引用?
P.S. 真不好意思我對 Excel  如何使用內在函數,以及
       自訂函數 (Function) 如何在欄內應用方面所知有限。
謝謝您指教!

TOP

本帖最後由 c_c_lai 於 2015-12-8 13:21 編輯

回復 9# 准提部林
謝謝您回覆,我使用您#3樓的程式
測的手都軟了,還是一樣 (無論是在任何欄位,包含J4)
依然是 #REF!。甚至寫了兩支測試程式,都 PASS:
  1. Function AddCol(h, i) As String
  2.     AddCol = h + i
  3. End Function

  4. Function AddCol2(w, h, i) As String  '  故意帶入 w 參數
  5.     AddCol2 = h + i
  6. End Function
複製代碼

唯獨 =get_wl(B$3:E$11,H4,J4) 不行:

問題應該出在程式碼內部無法參照到 B$3:E$11,
但用 VBA 檢測也找不出問題點。

TOP

回復 11# 准提部林
能否幫我檢查看看,到底差異性在哪裡?
謝謝您!
多條件判斷編製名稱1206_v0.rar (15.5 KB)

TOP

回復 13# 准提部林
終於問題解決了,剛剛重新從#1下載
便直接做結果 OK了,再回到原先有問題的先前
問題檔案,怎麼做怎麼錯,極有可能那支檔案
裡有潛在問題,不管它了!
謝謝您耐心地回覆,再次謝謝!

TOP

本帖最後由 c_c_lai 於 2015-12-8 14:59 編輯

回復 15# 准提部林
觀察前後檔案存檔後之的 Icon 顯示:
F.png
您提及的狀況也極有可能,謝謝您!

TOP

        靜思自在 : 忘功不忘過,忘怨不忘恩。
返回列表 上一主題