本样例操作环境为Microsoft office Excel 2019
本样例目标:
在“我的工具栏_1”菜单点击自定义按钮“数据汇总示范”,使得自动新建”汇总表”,并且汇总表数据=Sheet1数据+Sheet2数据。最终效果如下图所示:

实现以上目标,我们需要:
1、新建Excel文件,在其中编写数据汇总所需的VBA代码;
2、将Excel文件另存为扩展名为xlam的文件(使用默认保存路径,不要修改保存位置);
3、再新建一个Excel文件,将刚才保存的xlam文件中代码勾选为“可用加载宏”;
4、自定义菜单“我的工具栏_1”;
5、添加“不同表头汇总”按钮,并将已保存的xlam中代码功能赋予此按钮;
6、在Excel文件中,新建Sheet1和Sheet2,并添加样例数据;
7、点击“不同表头汇总”按钮,查看效果,实现图1结果,则成功;否则,失败(失败的话,再回过头看下哪一个步骤操作有问题,解决即可)。
具体步骤:
步骤零 添加“开发工具”菜单
如果您的Microsoft Excel工作表环境中已经有“开发工具”菜单,则可以跳过此步,进入“步骤一”;否则,需要添加“开发工具”菜单,具体操作如下
1)打开“文件”菜单,点击“选项”按钮,弹出如图2所示对话框。

2)点击“自定义功能区”按钮,打开工作界面如图3所示。

3)在右侧的“自定义功能区”勾选“开发工具”项,如图4所示;然后点击“确定”。即实现将“开发工具”添加到菜单中,如图5所示。


步骤一 新建Excel文件,在其中编写数据汇总所需的VBA代码
1)新建Excel文件,打开“开发工具”菜单,点击”Visual Basic”,打开编码环境,如图6所示。

2)[双击当前文件的Sheet1,打开编码界面,如图7所示。

3)将VBA代码,写入编码界面,保存文件(Ctrl+S),如图8所示。

VBA代码如下:
Sub combin()
Dim d As Object
Dim newst As Worksheet
Dim sh As Worksheet
Dim m
Dim r, r2
Dim i
Set d =CreateObject("scripting.dictionary"
Set newst = Sheets.Add
newst.Name = "汇总表"
m = 2
For Each sh In Sheets
Ifsh.Name <> "汇总表" Then
For i = 1 To sh.UsedRange.Columns.Count
If Not d.exists(sh.Cells(1, i).Value) Then
d(sh.Cells(1, i).Value) =m
m = m + 1
End If
Next i
EndIf
Next sh
newst.Range("A1") = "工作表"
newst.Range(newst.Cells(1, 2), newst.Cells(1,d.Count + 1)) = d.keys
For Each sh In Sheets
Ifsh.Name <> "汇总表" Then
r = newst.UsedRange.Rows.Count + 1
For i = 1 To sh.UsedRange.Columns.Count
sh.UsedRange.Columns(i).Offset(1).Copy newst.Cells(r, d(sh.Cells(1,i).Value))
Next i
r2 = newst.UsedRange.Rows.Count
newst.Range("A" & r & ":A" & r2) =sh.Name
EndIf
Next sh
Set d = Nothing
End Sub
步骤二 将Excel文件另存为扩展名为xlam的文件
1)打开“文件”-->“另存为”对话框,选择存储格式为扩展名为xlam的文件,如图9所示.

2)默认存储位置变为AddIns目录,将文件修改为合适文件名,将文件保存在此默认路径下即可,如图10所示。

步骤三 再新建一个Excel文件,将刚才保存的xlam文件中代码勾选为“可用加载宏”
1)在“开发工具”菜单,点击“Excel加载项”按钮,打开“加载”对话框。如图11所示。

2)勾选已保存的xlam文件中代码所对应的“可用加载宏”名称(如图12所示),点击“确定”。

步骤四 自定义菜单“我的工具栏_1”
1)打开“文件”菜单,点击“选项”按钮,弹出如图13所示对话框。

2)点击“自定义功能区”按钮,打开工作界面如图14所示。

3)在右侧的“自定义功能区”下方点击“新建选项卡”,如图15所示;然后重命名此选项卡为“我的工具栏_1”,如图16所示。


步骤五 添加“数据汇总示范”按钮,并将已保存的xlam中代码功能赋予此按钮
1) 选中已添加的“我的工具栏_1”下的“新建组”(见图18);
2) 在左侧的“从下列位置选择命令”下拉框中选择“宏”(见图17);
3) 选中刚添加的xlam文件中的功能代码名称,点击“添加”按钮,从而将带有此代码功能的按钮添加到“新建组”之下(见图18);
4) 选中新添加的按钮,点击“重命名”,修改图标与按钮名称(见图19),点击“确定”;
5) 可以看到已完成自定义按钮添加(见图20)。




步骤六 在Excel文件中,新建Sheet1、Sheet2、…,并添加样例数据
1) 新建多个Sheet页,并分别赋予数据(见图21-1 ~ 图21-3);



步骤七 点击“不同表头汇总”按钮,查看效果
1) 点击“数据汇总示范”按钮(见图20),得到汇总数据(见图22)。

网友评论