返回列表 上一主題 發帖

[發問] VBA 中引用 Mach 函數問題

回復 1# hsu5120
  1.     i = 5
  2.     ii = Range("U2").End(xlDown).Row
  3.     xx = "U3:U19"

  4.     s = WorksheetFunction.Match(arr_str_check(i), [A10:I10], 0)
  5.     [A12] = Cells(10, s)
  6.     s = WorksheetFunction.Match(arr_str_check(i), arr_str_check, 0) - 1
  7.     MsgBox "arr_str_check(i) = " & arr_str_check(i) & vbCrLf & "arr_str_check(s) = " & arr_str_check(s)
  8. End Sub
複製代碼

E1.png (35.54 KB)

E1.png

TOP

Range("N2") = "=MATCH(""" & arr_str_check(i) & """," & xx & ",0)"
准提部林 發表於 2016-5-1 10:20

這兒帶入的 xx 是字串型態,函式的 MATCH() 竟然能接受,
反之如果帶入 WorksheetFunction.Match() 便不行了,

WorksheetFunction.Match(arr_str_check(i), xx, 0)

執行階段錯誤 '1004'
無法取得類別 WorksheetFunction 的 Match 屬性
而必須宣告成 Range/Object 才可以。

Set xx = [U3:U19]
WorksheetFunction.Match(arr_str_check(i), xx, 0)

TOP

本帖最後由 c_c_lai 於 2016-5-1 11:40 編輯
謝謝各位大大熱心的回覆,其實想要將
1.這一行    xx="U3:U19"  ,改成  xx="U3:U" & ii (ii 為變數)。
2 ...
hsu5120 發表於 2016-5-1 11:12

xx = "U3:U"
ii = 19
Range("A8") = "=MATCH(""" & arr_str_check(i) & """," & xx & ii & ",0)"
上下兩行均為正確語法。
Range("A8") = "=MATCH(""" & arr_str_check(i) & """,U3:U" & ii & ",0)"

TOP

回復 7# 准提部林
Tks a lot!

TOP

        靜思自在 : 為自己找藉口的人永遠不會進步。
返回列表 上一主題