以下はtarget変数に文字列が入っており、別のシートにその文字列が存在するか判定するプログラムです。
hikaku2プロシージャを複数呼び出して何回か処理しているのですが、別シートに存在するはずなのにFuction関数の戻り値がFalseになってしまいます。
Debug.printで結果がTrueになっていることも確認していますがhikaku2ではElseで処理されてしまいます。
以下のコードの中は問題ないのでしょうか
ちなみに以下のコードとほぼ同じものが、もう一つ存在します。複数回使えないものなどあるのでしょうか?
Sub hikaku2() e = 2 Set this = ThisWorkbook.Worksheets("イベント") Do While e = 2 target = this.Cells(2, 7).Value Application.ScreenUpdating = False If target Like "初期表示" Then '初期表示という文字列なら Call IsContained2(target) If kekka2 = True Then this.Cells(e, 9).Value = "一致" Else '全てこっちで処理されてしますう this.Cells(e, 9).Value = "不一致" End If End If If Not target Like "初期表示" Then '初期表示という文字列以外なら Call tes2(target) If answer2 = True Then this.Cells(e, 9).Value = "一致" Else '全てこっちで処理されてしまう this.Cells(e, 9).Value = "不一致" End If End If e = e + 1 Loop End Sub Function IsContained2(target) As Boolean On Error Resume Next num2 = Application.WorksheetFunction.Match(target, ThisWorkbook.Worksheets("Sheet3").Range("A1:A1000").Offset(0, nn), 0) ' ここで別シートにtargetがあるか判定 nnは別で更新しています On Error GoTo 0 If num2 = 0 Then kekka2 = False Else 'こっちになるときもある kekka2 = True End If End Function Function tes2(target) As Boolean On Error Resume Next num2 = Application.WorksheetFunction.Match(target, ThisWorkbook.Worksheets("Sheet3").Range("A1:A800").Offset(0, nn), 0) On Error GoTo 0 If num2 = 0 Then answer2 = False Else 'こっちになるときもある answer2 = True End If End Function
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/11 08:56
2020/09/11 13:51