2012-03-09 7 views
0

のルックアッププロパティを取得できません:つまり、それは他のそれが何かを見つける1でカラムを、塗りつぶし、コードで次のコードWorksheetFunctionクラス

For i = startRow To startRow + (nRows - 1)  
Set lookUp = Range(col & i) 
Range("I" & i) = IIf(WorksheetFunction.lookUp(lookUp, Sheets("P&C curves").Columns("A")) = lookUp, 1, 0) 
Range("J" & i) = IIf(WorksheetFunction.lookUp(lookUp, Sheets("G Curve").Columns("A")) = lookUp, 1, 0)  
Next i 

、私はWorksheetFunction.lookUpすべてが正常に動作呼んで初めて0になりますが、2行目は機能しません。エラーが表示されます:

Unable to get lookup property of the worksheetfunction class.

どうしてですか? Excelのシートで同じロジックを直接使用しようとすると動作しますか?

は本当にどうもありがとう

答えて

0

はあなたがしようとしている何本です...任意の助けに感謝しませんか?

For I = startRow To startRow + (nRows - 1) 
    Set Lookup = Range(col & I) 

    On Error Resume Next 

    Ret = WorksheetFunction.Lookup(Lookup, Sheets("P&C curves").Columns("A")) 
    If Err.Number <> 0 Then 
     Range("I" & I) = 0 
     Err.Clear 
    Else 
     If Ret = Lookup Then Range("I" & I) = 1 Else Range("I" & I) = 0 
    End If 

    Ret = WorksheetFunction.Lookup(Lookup, Sheets("G Curve").Columns("A")) 
    If Err.Number <> 0 Then 
     Range("J" & I) = 0 
     Err.Clear 
    Else 
     If Ret = Lookup Then Range("J" & I) = 1 Else Range("J" & I) = 0 
    End If 
Next I 
+0

こんにちは、これは私が実装する必要があるロジックですが、あなたが書いた方法をコピーすることは、IF Elseステートメントのためにすべてが遅くなります.....私のコードでは、あなたは最初の部分で何を記述していますか?しかし、不思議なことに2行目はうまくいきませんか? – Eva

+0

これは、値が見つからないためにエラーが発生したためです。何行目について話していますか?私はちょうど700行のための上記のコードをテストし、目の瞬きでそれを終えた...もし私がそう言うことができます。 –

+0

これはもう少し説明することができますが、私は2行目を削除すると、それは完全に最初の行を実行することを意味します。しばしば値を見つけられないので、セルにゼロを入れます。なぜなら、2番目の行があれば、この動作はもはや機能しません。 – Eva