2017-03-04 110 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