Excel自定义菜单+VBA编码使用样例

本样例操作环境为Microsoft office Excel 2019 

本样例目标:

在“我的工具栏_1”菜单点击自定义按钮“数据汇总示范”,使得自动新建”汇总表”,并且汇总表数据=Sheet1数据+Sheet2数据。最终效果如下图所示:


图1.自定义按钮“不同表头汇总”功能效果示意

实现以上目标,我们需要:

1、新建Excel文件,在其中编写数据汇总所需的VBA代码;

2、将Excel文件另存为扩展名为xlam的文件(使用默认保存路径,不要修改保存位置);

3、再新建一个Excel文件,将刚才保存的xlam文件中代码勾选为“可用加载宏”;

4、自定义菜单“我的工具栏_1”;

5、添加“不同表头汇总”按钮,并将已保存的xlam中代码功能赋予此按钮;

6、在Excel文件中,新建Sheet1和Sheet2,并添加样例数据;

7、点击“不同表头汇总”按钮,查看效果,实现图1结果,则成功;否则,失败(失败的话,再回过头看下哪一个步骤操作有问题,解决即可)。


具体步骤:

步骤零 添加“开发工具”菜单

如果您的Microsoft Excel工作表环境中已经有“开发工具”菜单,则可以跳过此步,进入“步骤一”;否则,需要添加“开发工具”菜单,具体操作如下

1)打开“文件”菜单,点击“选项”按钮,弹出如图2所示对话框。


图2.“Excel选项”对话框

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


图3.“自定义功能区”工作界面

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


图4.
图5.

步骤一    新建Excel文件,在其中编写数据汇总所需的VBA代码

1)新建Excel文件,打开“开发工具”菜单,点击”Visual Basic”,打开编码环境,如图6所示。


图6.VBA编码环境

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


图7.

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


图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所示.


图9

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


图10

步骤三  再新建一个Excel文件,将刚才保存的xlam文件中代码勾选为“可用加载宏”

 1)在“开发工具”菜单,点击“Excel加载项”按钮,打开“加载”对话框。如图11所示。


图11

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


图12

步骤四   自定义菜单“我的工具栏_1”

1)打开“文件”菜单,点击“选项”按钮,弹出如图13所示对话框。


图13.“Excel选项”对话框

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


图14.“自定义功能区”工作界面

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


图15.


图16.

步骤五   添加“数据汇总示范”按钮,并将已保存的xlam中代码功能赋予此按钮

1)  选中已添加的“我的工具栏_1”下的“新建组”(见图18);

2)  在左侧的“从下列位置选择命令”下拉框中选择“宏”(见图17);

3)  选中刚添加的xlam文件中的功能代码名称,点击“添加”按钮,从而将带有此代码功能的按钮添加到“新建组”之下(见图18);

4)  选中新添加的按钮,点击“重命名”,修改图标与按钮名称(见图19),点击“确定”;

5)  可以看到已完成自定义按钮添加(见图20)。


图17
图18
图19
图20 完成自定义菜单与按钮添加后效果

步骤六   在Excel文件中,新建Sheet1、Sheet2、…,并添加样例数据

1)   新建多个Sheet页,并分别赋予数据(见图21-1 ~ 图21-3);


图21-1
图21-2
图21-3

步骤七   点击“不同表头汇总”按钮,查看效果

1)   点击“数据汇总示范”按钮(见图20),得到汇总数据(见图22)。


图22

你可能感兴趣的:(Excel自定义菜单+VBA编码使用样例)