美文网首页
Excel自定义菜单+VBA编码使用样例

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

作者: 远游必有方 | 来源:发表于2020-01-08 18:54 被阅读0次

    本样例操作环境为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编码使用样例

          本文链接:https://www.haomeiwen.com/subject/gqusactx.html