2017-06-08 118 views
0

下面是我想要做的: 列「a」包含,比方說,汽車的類型和列「b」包含該汽車的顏色。我需要做的是格式化一張表格,例如,顯示「藍色公民」的數量,以便我可以將其與「藍色吉普車」和「紅色行者」進行比較。有沒有人知道一個簡單的方法來做到這一點,而不需要初始化一堆變量並製作一堆if語句?量化兩列之間的比較VBA

基本上,我將有4種類型的汽車,每輛汽車有4種可能的顏色。現在,我有這樣的事情:

Dim HondaRed As Integer, HondaBlue As Integer 
For Each a In ary 
    On Error Resume Next 
    cl.Add a, CStr(a) 
    'if statements that ask if column "a" is is honda if column "b" is blue, then incramanets HondaBlue by 1' 
Next a 

我可以做到這一點在c + +沒有問題。問題是,我仍然在等VB,所以任何幫助或資源指向我在正確的方向將不勝感激。謝謝!

+0

你爲什麼要把藍色公民比作「藍色吉普車」和「紅色越野車」。 ? –

+0

考慮創建一個數據透視表或使用VBA創建數據透視表。 –

+0

@GowthamShiva我沒有,我只是舉了一個例子。我想將列a中的內容與列b中的內容相結合,然後增加這些組合值中的多少個。 – corvonik

回答

1

如果你想有一個VBA例子,比如說我們先從:

enter image description here

下面是一些非常簡單的代碼:

Sub TableMaker() 
    Dim N As Long, i As Long, j As Long, k As Long 
    N = Cells(Rows.Count, "A").End(xlUp).Row 
    For i = 1 To N 
     ca = Cells(i, 1) 
     cl = Cells(i, 2) 
     If ca = "Honda" Then j = 2 
     If ca = "Toyota" Then j = 3 
     If ca = "Chevy" Then j = 4 
     If ca = "Ford" Then j = 5 
     If cl = "Blue" Then k = 5 
     If cl = "Black" Then k = 6 
     If cl = "Red" Then k = 7 
     If cl = "White" Then k = 8 
     'MsgBox j & vbCrLf & k & vbCrLf & Cells(j, k) 
     Cells(j, k) = Cells(j, k) + 1 
    Next i 
End Sub 

會產生:

enter image description here

頻率表中的標題手動添加。 IFs中的值基於表格的位置。

使用數據透視表仍然是最好的方法。

+0

這是一個比我計劃好得多的方法,謝謝 – corvonik