2016-11-17 9 views
0

ドロップダウンリストには異なる名前(アカウントマネージャ)があり、各アカウントマネージャには1つ以上の 'SID'(6桁の数字)があります。 3人のSIDを持っている「A」(アカウントマネージャー)を選択し、SIDが1人の「B」アカウントマネージャーのSIDを表示したい場合は、最後の結果をクリアしてBアカウントマネージャーのみに表示したいしかし、私のコードでは最後の結果が残っていますが、コードは 'B'の最初のSIDを更新し、 'A'の他の2つのSIDを更新します。ドロップダウンリストが更新された場合の結果の更新(最後の結果をクリア)

私は 'A' SIDを必要としません。

Sub Discrepancies_by_Acc_Mgr() 

''SIDs are in column 'D' in my Data, 
''Account manager names are in Column 'W', 
'' Column 'Z3' where i have my drop down list, 
'' From Column 'Z6' where i want to start print the SIDs if find in the data 

    s = 6 
    For i = 2 To 25000 
     If (Worksheets("Data").Range("W" & i)) =(Worksheets("Data").Range("Z3")) Then 
      Worksheets("Data").Range("Z" & s) = Worksheets("Data").Range("D" & i) 
      s = s + 1 
     End If 

    Next 

End Sub 

答えて

0

は結果だけを書き込む前に、セルの内容をクリアします:

'(それが唯一のこれが私のコードである1と明確な休息細胞

を示すべき

Sub Discrepancies_by_Acc_Mgr() 
    Dim s As Long 
    Dim i As Long 

    With Worksheets("Data") 
     'Clear existing contents if they exist 
     If Not IsEmpty(.Range("Z6")) Then 
      .Range("Z6:Z" & .Range("Z" & .Rows.Count).End(xlUp).Row).ClearContents 
     End If 

     s = 6 
     For i = 2 To 25000 
      If .Range("W" & i).Value = .Range("Z3").Value Then 
       .Range("Z" & s).Value = .Range("D" & i).Value 
       s = s + 1 
      End If 
     Next 
    End With 
End Sub 
関連する問題