質問: worksheetfunction.match(34465, a, 0) end sub ご教授くださると幸いです。
回答: こんにちは。 > もはや配列での上限はワークシートでのそれよりも仕様上厳しい、どうしても配列でmatchを使いたければ、matchをループさせて検索を連続させるしかない、 自己完結されてしまうと、返事のつけようがないのですが、それは、この際、放っておきます。なぜなら、解決方法は、ワークシート関数だけとは限らないからです。(例:dictinaryオブジェクト) https://excel-ubara.com/excelvba4/excel226.html 》 excel2013以降では、この制限はなくなっていることが確認できました。 こちらは、excel 2016(32bit) ですが、エラーは出ますね。(ここのサイトはあまり信用しないほうが良いでしょう) '// public sub test_a() dim a(100000) as long, i as long, b as long, j as long for i = 0 to 100000 a(i) = i next i for j = 34400 to 65536 on error resume next b = worksheetfunction.match(j, a(), 0) doevents if err.number <> 0 then msgbox b exit sub end if next on error goto 0 end sub msgbox ->34465 エラー値 '// 予め、a列に数値が入っています。 public sub test_b() dim a(1 to 100000) as long, i as long, b as long, j as long for i = 1 to 100000 a(i) = cells(i, 1).value next i for j = 34400 to 65536 on error resume next b = worksheetfunction.match(j, a(), 0) doevents if err.number <> 0 then msgbox b exit sub end if next on error goto 0 end sub msgbox ->34464 エラー値