2016-09-21 2 views
0

私はSTPが SEZはSEZに落ちる必要があり、その中に工学分野の追加に伴いSTPシートに落ちてしなければならない ..私はすべてのような条件に基づいてループにしたい。ここvbaで2回ループしていますか?

Src Base June July 
    Eng STP 10 20 
    Sve STP 20 30 
    GMO SEZ 30 10 
    Eng STP 20 30 
    Sve SEZ 40 50 

、以下のような優れたていますそれぞれの列

とともにシート、私はここに、それぞれの場合でループすることができません..

私の裁判は、以下のようなものだった。..

With Worksheets("Mktg.Effort") 
    For lrow = 2 To .Cells(.Rows.Count, "R").End(xlUp).Row 
    Select Case CStr(Cells(lrow, "R").Value) 
    Case "STP" 
    Worksheets("Mktg.Effort").Rows(lrow).Activate 
    For lroww = 1 To .Cells(.Rows.Count, "A").End(xlUp).Row 
    Select Case CStr(Cells(lroww, "A").Value) 
    Case "engg" 
     ' adding all eng cols 
     ' and this data should fall in STP sheet. 

ここでは、基本(STP/SEZ)条件に関係なくすべてのEngフィールドを取得しています。 両方の条件でループしたい 1. STP/SEZが かどうかを確認する必要があります。2. Eng/Sve/gmoが であるかどうかをチェックし、それに応じてデータを自動化する必要があります。

ENyのヘルプをお願いします。私はここで打ちのめされている。

予想される出力:

 Src Base June July 
    Eng STP 30 50 ' added all ENG into one row 
    Sve STP 20 30 
+0

あなたが望むものを理解するのは難しいの一種です。あなたは一度に2つの条件をチェックする方法を尋ねていますか? 'If​​条件1と条件2 Then'を使用してください。それは、 "二度繰り返す"とはみなされませんでした。なぜなら、あなたは一度だけループしているからです。あなたがもっと多くのケースを追加しない限り、 'Select Case'を使うことは残念です。ああ、また文字列の比較では大文字と小文字が区別されます。 – arcadeprecinct

+1

あなたのCellコールの中にドットがないものがあるので、Withブロックシートではなくアクティブシートを参照してください –

+0

ここで@arcadeprecinctここではSTPを含むすべての行を1つのループに入れたいと思います。 eng/sve/gmoこの条件が満たされた場合、その行をアクティブな行として取得する必要があります。 あなたの編集した質問を期待された出力でチェックしてください。 –

答えて

0

代わりの二倍あなたをループループは一度、その後、以下のような条件の何かを確認することがあります。

With Worksheets("Mktg.Effort") 
    For lrow = 2 To .Cells(.Rows.Count, "R").End(xlUp).Row 
    Select Case CStr(Cells(lrow, "R").Value) 
    Case "STP" 
     If CStr(Cells(lrow, "A").Value) = "Eng" Then 
      ' adding all eng cols 
      ' and this data should fall in STP sheet. 
     ElseIf CStr(Cells(lrow, "A").Value) = "SVE" Then 
      '....and so on 
+1

助けてくれてありがとう –

関連する問題