一、excel怎么用vba编写一个这样的程序
Sub 双字典统计()
Dim Rng As Range, Dic As Object, i&, Arr, Brr
Set Dic = CreateObject("Scripting.Dictionary")
Arr = [A2:C12]
For i = 1 To UBound(Arr)
If Not Dic.Exists(Arr(i, 1)) Then
Set Dic(Arr(i, 1)) = CreateObject("Scripting.Dictionary")
Dic(Arr(i, 1))(Arr(i, 2)) = Arr(i, 3)
Else
Dic(Arr(i, 1))(Arr(i, 2)) = Dic(Arr(i, 1))(Arr(i, 2)) + Arr(i, 3)
End If
Next i
Set Rng = [F1]
Brr = Dic.Keys
For i = 0 To UBound(Brr)
Rng.Offset(0, i * 2) = Brr(i)
Rng.Offset(1, i * 2).Resize(Dic(Brr(i)).Count, 2) = _
Application.WorksheetFunction.Transpose(Array(Dic(Brr(i)).Keys, Dic(Brr(i)).Items))
Set Dic(Brr(i)) = Nothing
Next i
Set Dic = Nothing
End Sub
二、excel中的vba是什么意思
VBA主要是触发和指定单元格。
工具:电脑、excel2007.
1、打开电脑桌面上的excel2007软件。
2、打开一个Excel文件,鼠标右击下面的工作表(如sheet1)。选择“查看代码”,就可以打开VBA编辑界面。
3、选择如下图所示的下拉菜单,选择“worksheet”。
4、选择如下图所示的下拉菜单,选择对应的触发模式。这里选择BeforeDoubleClick,意思就是说:在本工作表鼠标双击(之前),将触发下面的代码程序。
5、选择完成后,会看到下面出现了两条代码;这俩条代码其实是在声明一个函数。将鼠标放置在这两行代码之间,写上执行语句:Sheet1.Cells(1, 3) = Sheet1.Cells(1, 1) + Sheet1.Cells(1, 2)。
6、然后点击保存,回到Excel的原始界面。
7、在cells(1,1)和cells(1,2)中输入两个数值。在sheet1的工作表中,双击鼠标。会发现,cells(1,3)的值变成了cells(1,1)和cells(1,2)的和。
