2016-09-28 7 views
1

内にない場合、私は、次の処理を行い、いくつかのトラブルのマクロ私のVBAを書いたんだ:私はコストセンターを入力しますと、セルD3にあるだろうセルC3でエラーログ数は、他のワークシートの範囲

を原価タイプ番号が入力されます。

C3の値が3で始まり、D3(常に7つの数字)の値がAG2:AG23のセルにリストされている数の怒りの範囲内にないときに、ポップアップするエラーメッセージを表示します。メタデータと呼ばれる別のワークシートの

これまでの私のコードは以下の通りです:1000000よりも別の値をセルに入力したときに私は出てくるだろう。このことは、正常に動作If Left(Cells(CLine, 3).Value, 1) = "3" and Left(Cells(CLine, 4).Value, 7) <> "1000000" Thenと私のエラーメッセージのような最初の行を展開すると今

'Do While... 

    '... 

    If Left(Cells(CLine, 3).Value, 1) = "3" Then 

     If Cells(CLine, 5).Value = blank Then 
      If SLine = 1 Then 
       ErrLog = ErrLog & "Costcenter in Line" & " " & Dline 
       SLine = SLine + 1 
      Else 
       ErrLog = ErrLog & ", " & Dline 
      End If 
     End If 

    End If 

    Dline = Dline + 10 
    CLine = CLine + 1 

Loop 

If SLine > 1 Then 
    ErrLog = ErrLog & " requires WBS Element." & vbCrLf 
End If 

D3。

しかし、私が< 1000000と> 2000000のようなものを使用し始めると(1000000と2000000の間の数字を使用するとメッセージが表示されないようにするため)、エラーが発生します。

10000000から2000000までの数字が入力されるとエラーが表示されないように、コードの最初の行に「Between」を挿入する方法を教えてもらえますか?

+1

あなたのコードをインデントしようとしているあなたは、 'ドWhile'または他の開始文です' Loop'がありますか? –

+0

問題は、既存のファイルの数式を拡張しようとしていることです。ループはさらに進んでいきますが、それはすべてのコードです。 VBAコードで説明しないとしたらどうでしょうか? セルC3の値が3で始まり、セルD3の値がセルの範囲にない場合AG2:AG23ワークシートのメタデータ、エラーメッセージ "WBS要素を入力してください"が表示されます – Claudia

+0

列Dの値は数値でフォーマットされていますか? "はい、左(セル(CLine、4).Value、7)<>" 1000000 "'セル(CLine、4).Value <> 1000000'またはセル(CLine、4) ).Value> 1000000' –

答えて

0

まず、セルD3は、このような値内にある場合は、あなたがチェックしたいあなたの範囲を定義することができます

Dim Rng  As Range 

' set-up check range (modify Sheet name and Range to your needs) 
Set Rng = Sheets("metadata").Range("AG2:AG23") 

第二に、エラーメッセージを表示するようにセルC3には「3」で始まり、そしてときセルD3の値は、以下の行を使用し、その範囲外である:特定のセルがブランク(または空)であるかどうかを確認するために、

If Left(Cells(CLine, 3).Value, 1) = "3" And _ 
    (Cells(CLine, 4).Value < WorksheetFunction.Min(Rng) Or _ 
    Cells(CLine, 4).Value > WorksheetFunction.Max(Rng)) Then 

そして第三のあなたの行を変更:

If Cells(CLine, 5).Value = blank Then 

へ:

If IsEmpty(Cells(CLine, 5)) Then 
+0

これは素晴らしい部分的に働くようです。それは私に私が私の範囲の最大値よりも高い1つを入力した場合、3または4の数字が8000000より小さい数字を入力すると私にエラーを与えますが、それでも私は奇妙なエラーを私に与えていませんあなたのコードがうまくいくことを確認してください – Claudia

+0

ああ、私はちょうどコードロードの下から別のエラーメッセージを送ってきたのを見たことがあります...私はこれがうまくいかない理由を調べなければなりません...私は発見した新しいエラーで...私はVlookupが動作しないので、私はコストタイプの数値を数値として書式設定できません。テキストがあり、値が範囲内にある場合はコードでチェックしますが、最小値/最大値物事はうまくいかない、そう? – Claudia

+0

それは動作します!それは私自身の愚かさによるものではなかった。私もコピーすることはできません/過去:-)おそらくこのファイルを長くしていて、2つの "と"の代わりに "と"と1つの "または"あなたがしたように...あなたの助けをありがとう! – Claudia

関連する問題