2017-06-02 6 views
0

TextとNumberを考慮せずに、指定した値に基づいて一致するセルを見つけるためのVBAコードを書きたいと思います。WorksheetFunctionとCtrlキーを押しながらVBAを入力する

我々はこのようにExcelでそれを行うことができます。 + を入力しはCtrl +Shiftキーを押しながら=match("*207*", C:C & "",0)

しかし、VBAコードpos = WorksheetFunction.Match(lookup_value, lookup_range & "", 0)は機能しません。
解決策はありますか? VBAで

+0

範囲をpos' 'ですか?もしそうなら、 'pos.FormulaArray = WorksheetFunction.Match(lookup_value、lookup_range&" "、0)'を試してください。 – BruceWayne

+0

worksheet.evaluateを参照してください。それは配列の数式を行います。 –

+0

'pos'は範囲にできません。これはVariant型のものです。 – AliM67

答えて

2

lookup_range & ""文句を言わないの仕事、あなたはRangeオブジェクトにもArrayStringを連結することはできませんので。代わりにEvaluateを使用してください:

pos=Sheet1.Evaluate("match(""*207*"", C:C & """",0)") 

この評価で変数を使用するには:

pos = Application.Evaluate("MATCH(""*" & lookup_value & "*""," & _ 
    lookup_range.Address(External:=True) & "& """",0)") 
+0

VBAでは、変数lookup_value、lookup_rangeを使用したいと思います。私はこのコードをUDFで使用します。 – AliM67

+0

@ AliM67 - 次に、それらを使用できるようにするために式を "分割"しますか? – BruceWayne

+0

@BruceWayne - もっと説明してください。これはどういう意味ですか: 'pos = Application.Evaluate(" Match" lookup_range& "&" "0)") – AliM67

関連する問題