2016-09-21 172 views
0

我有练成像下面,在vba中循环两次?

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

在这里,我想所有环路根据病情如.. STP应在STP板材与另外在其工程领域的一起倒下 经济特区应落在特区各自的列

我无法在这里每一种情况下环沿片..

我的审判是像下面..

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.应该检查是否主机/全部/ GMO ,并相应地,我必须自动化数据。

请帮助。我不知道这里是什么。

预期输出:

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

这是一种很难理解你想要什么。你在问如何一次检查两个条件?只要使用'如果条件1和条件2然后'。这不会被认为是“循环两次”,因为......呃,你只是循环一次。除非你想添加更多的案例,否则使用'Select Case'似乎有点矫枉过正。哦,而且字符串比较大多是区分大小写的。 – arcadeprecinct

+1

的一些你的手机通话漏点,所以请参考活动工作表,而不是你带块表 –

+0

@arcadeprecinct这里我想所有STP行一个循环,在这个循环中,我需要再次检查的情况下,如果这是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

帮助我谢谢 –