2016-12-06 8 views
0

「E」または「F」の3つの値を返すコードを実行します。AND A、B、C、Dの2つの値も返します。ここまではこれまでのことです。コードをループして、EまたはFの3つの値と、A、B、C、またはDの2つの値を返します。

Sheets("123").Select 
Dim rng As Range 
Dim count As Integer 

Set rng = Range("L2:L500000") 
For Each cell In rng 
    If Left(cell.Value, 1) = "A" Or Left(cell.Value, 1) = "B" Or _ 
     Left(cell.Value, 1) = "C" Or Left(cell.Value, 1) = "D" Or _ 
     Left(cell.Value, 1) = "E" Or Left(cell.Value, 1) = "F" Then 
     cell.EntireRow.Interior.ColorIndex = 4 
     count = count + 1 
    End If 
    If count >= 5 Then Exit For 
Next 
+0

それはあなたが求めているものを実際に明確ではありません。 – SJR

+0

基本的に、セル範囲にA、B、C、D、E、Fのいずれかの文字がある場合、コードは5行を強調表示します。しかし、私は文字A、B、CまたはDと合計2行がEまたはFの文字で返された合計3行が必要です。コードはランダムにデータをランダムにソートします(予想通り)。文字の第1セット、すなわちA、B、C、またはDの1行とEまたはFの4行の2番目の文字セット。 –

+0

予想される入力と出力の例を挙げることができますか? –

答えて

1

A、B、C、DとE、Fの2つのカウンターを1つずつ保持する必要があります。あなたの質問に基づいて

(あなたのコメントに与えられていない矛盾した数字)、以下はあなたが欲しいものを行う必要があります。

Dim cell As Range 
Dim countABCD As Integer 
Dim countEF As Integer 
For Each cell In Worksheets("123").Range("L2:L500000") 
    Select Case Left(cell.Value, 1) 
     Case "A", "B", "C", "D" 
      If countABCD < 2 Then 
       cell.EntireRow.Interior.ColorIndex = 4 
       countABCD = countABCD + 1 
      End If 
     Case "E", "F" 
      If countEF < 3 Then 
       cell.EntireRow.Interior.ColorIndex = 4 
       countEF = countEF + 1 
      End If 
    End Select 
    If countABCD = 2 And countEF = 3 Then 
     Exit For 
    End If 
Next 
+0

OPが実際に必要としているものを理解しようとするような、難しい仕事へのあなたの挑戦のためにアップしました – user3598756

+0

@ user3598756 - LOL - **試しに**重点を置いて!! – YowE3K

+0

素晴らしい、それは素晴らしい、YowE3Kだった。ありがとうございました。 –

関連する問題