2017-03-04 109 views
1

我基本上有多个我想要分类的变量。我有一个列表,哪个变量进入哪个类别,但是由于我有40,000个条目手动执行,因此是及时的。在范围上选择案例

基本上我的数据是这样的,a,b,c在A组中,d,e,f在B组中等等。 我正在尝试使用Select Case,但我无法弄清楚如何在范围上运行它;意思,我在A列变量我想它来检查A列中每个单元格,并假设如果d然后在列写“B组” B. 这是所有我可以管理作为一个初学者

Case "a", "b", "c" 
cells(1,2).Value = "Group A" 
Case Else 
cells(1,2).Value = "Not Defined" 
End Select 
End Sub 

回答

3

你需要一个循环:

Dim r As Long 
    For r = 1 To Cells(Rows.Count, "A").End(xlUp).Row 
     Select Case Cells(r, "A").Value 
      Case "a", "b", "c" 
       Cells(r, 2).Value = "Group A" 
      Case "d", "e", "f" 
       Cells(r, 2).Value = "Group B" 
      Case Else 
       Cells(r, 2).Value = "Not Defined" 
     End Select 
    Next 
End Sub 
+0

谢谢!刚刚意识到! –

0

而不是通过细胞循环电池可以运行更快VBA相当于

=IF(OR(A2={"a","b","c"}),"Group A",IF(OR(A2={"d","e","f"}),"Group B","not me"))

Value部分与复制粘贴特殊值相同,即删除公式

Dim rng1 As Range 
With ActiveSheet 
    Set rng1 = .Range(.[a1], .Cells(.Rows.Count, "a").End(xlUp)) 
    rng1.Offset(0, 1).FormulaR1C1 = "=IF(OR(RC[-1]={""a"",""b"",""c""}),""Group A"",IF(OR(RC[-1]={""d"",""e"",""f""}),""Group B"",""not me""))" 
    rng1.Offset(0, 1).Value = rng1.Offset(0, 1).FormulaR1C1 
End With