2017-08-16 4 views
0

2つのセルの内容が参照に一致するかどうかを確認するマクロを作成し、3つ目のセルに特定のテキストを書き込みます。他の2つのセルの内容が参照に一致するときに文字列を書き込む

これは私が enter image description here

を奇妙なことは、5行目については、以下の例のように、いくつかのケースでは、私はそれが存在しない対応を得ることである

lastRow = Sheets("AAA").Range("B1000").End(xlUp).Row 
If Sheets("AAA").Range("E5") = "" Then 
    id = 1 'identifier 
    For i = 5 To lastRow 
     sampleFunction = Sheets("AAA").Range("B" & i).Value 
     For j = 5 To lastRow 
      sampleFailure = Sheets("AAA").Range("C" & j).Value 
      For m = 5 To lastRow 
       counter = 0 
       For n = 5 To lastRow 
        If Sheets("AAA").Range("B" & m).Value = sampleFunction And Sheets("AAA").Range("C" & n).Value = sampleFailure And Sheets("AAA").Range("J" & n) = "" Then 
         Sheets("AAA").Range("J" & n) = ("DDF" & id) 
         counter = counter + 1 
        End If 
       Next n 
       If counter > 0 Then 
        id = id + 1 
       End If 
      Next m 
     Next j 
    Next i 
End If 

を書き、10のコードです

問題があるという印象があります

If Sheets("AAA").Range("B" & m).Value = sampleFunction And Sheets("AAA").Range("C" & n).Value = sampleFailure And Sheets("AAA").Range("J" & n) = "" Then 

私はそれを見つけることができません。

答えて

1

sampleFunctionsampleFailureはこのような引用符で次のようになります。

If Sheets("AAA").Range("B" & m).Value = "sampleFunction" 

そうでない場合はExcelは、彼らが変数であることを考えています。それらが変数の場合は、コードの周りに括弧を入れてみてください。うまくいくかもしれません。このように:

If (condition) And (condition) And (condition) then

最終場合、debug.printそれをチェックする前に、各条件。このように: debug.print Sheets("AAA").Range("B" & m).Value = sampleFunction

+0

最初の2つの提案されたアプローチは、結果を変更しません。 debug.printになると、function3 = function1がTrueを返します。明らかに間違っています。 –

+0

@ L.Dutch - ソリューションを見つけましたか? – Vityata

+0

いいえ、私はまだしませんでした。 –

関連する問題