量化两列VBA之间的比较

这是我想要做的:列“a”包含,比方说,汽车的types和列“b”包含汽车的颜色。 我需要做的是格式化一个表格,例如“蓝色公民”的数量,以便我可以把它比作“蓝色吉普车”和“红色行者”。 有没有人知道一个简单的方法来做到这一点,而不需要初始化一堆variables和一堆if语句?

基本上,我将有4种types的汽车,每辆汽车有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,所以任何帮助或资源指向正确的方向将不胜感激。 谢谢!

如果你想要一个VBA的例子,说我们开始:

在这里输入图像说明

这里有一些非常简单的代码:

 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 

会产生:

在这里输入图像说明

频率表中的标题是手动添加的。 IFs中的i,j值取决于表的位置。

使用数据透视表仍然是最好的方法。