excel开发,menu的修改不能被保存

时间:2021-03-15 15:32:57
别人开发的excel程序,现在要进行修改,对菜单中所对应的宏名进行修改,但是修改完成后,不能够对修改进行保存,每次重新打开,发现还是原来修改前的样子,问可能的原因有几种,如何解决?
谢谢!

11 个解决方案

#1


有没有进工程资源管理器对代码进行修改?

#2


查过,代码中没有添加菜单的相关code,我是使用tool->customize,然后右键
点击相关需要修改的菜单栏进行修改的,修改完后,可以运行。但是当我关掉
excel后再重新打开时,发现我的修改不见了,还是原来的几个菜单,vba代码
中查找过,没有发现commandbar,不知道是怎么解决?

#3


而且我发现,该菜单是只出现在此工程中,而不是出现在excel启动后,所有的文件上的。是否是有个地方对此进行设置?急,谢谢!

#4


这样吧,您把您的文档发给我。

Yiqun_Zhao@163.com

如果设置了密码,记得密码也一起发过来。

我查看后给您答复!
[4.30-5.8期间我不会上网]

#5


肯定要用代码,用代码修改也可以 添加可以;
下面是添加Menu代码(不过你要先删除愿有菜单)
Sub Set_ToolMenu()
Dim mCaidan As Menu
    MenuBars(xlWorksheet).Reset
    
    Set mCaidan = MenuBars(xlWorksheet).Menus.Add("信息")
    Offen_ToolBars
    With mCaidan.MenuItems
        .Add "aa信息" 
        .Add "bb信息"           
    End With
    Set mCaidan = MenuBars(xlWorksheet).Menus.Add("查询")
    With mCaidan.MenuItems
    .Add "个别查询"
    End With
End Sub

#6


十分感谢您的帮忙,信已经发出
我的QQ:154009079
如果有任何问题,可以加我,或者可以发mail给我
谢谢!

#7


mail已经收到,我先看一下。

#8


mail已经发出。

这个可以直接用自定义菜单,然后指定宏。

#9


但是还是不能保存我所需要修改的菜单项,而且我发现在代码中放入auto_open代码后,不能够执行,是否该文件隐藏了一部分代码。。。(猜测)
PS:该工程是使用Office95编写的,不知是否有些隐藏或者什么,我用的版本是office2000和office XP.

#10


其实就是Auto_Open的一些代码对您的文档造成了影响。

您在OfficeXP中打开脚本编辑器中,可以看到对文档的很多属性都做了一定的设置。

工具--〉宏--〉Microsoft脚本编辑器--〉其中有很多加入的代码[顺便注意后面的一段.xml代码]
[如果您对JScript和XML熟悉的话,您可以直接更改这段代码,从而满足您的需求]

如果您对JScript和XML不熟悉,或者说不愿意去更改这些代码的话,您也可以按照以下步骤来实现:

1.右键单击工作表标签--〉查看代码--〉选择模块,依次导出[要注意名称的合法性,建议名称全部用英文]
2.记录下菜单中的相应项目[(菜单和子菜单,以及它们所引用的过程(宏)]
3.新建一空白文档
4.导入刚才导出的模块--〉根据记录的菜单中的相应项目建立新的菜单

或者如下:

1.右键单击工作表标签--〉查看代码--〉选择模块,依次导出[要注意名称的合法性,建议名称全部用英文]
2.记录下菜单中的相应项目[(菜单和子菜单,以及它们所引用的过程(宏)]
3.工具--〉宏--〉Microsoft脚本编辑器
4.双击MODULKAL.XLS--〉选中所有代码--〉删除--〉保存--〉转到Excel文档--〉选择覆盖更改--〉确定--〉关闭Microsoft脚本编辑器
5.工具--〉自定义--〉删除自定义的工具栏--〉确定 [这个步骤可以不要]
6.导入刚才导出的模块--〉根据记录的菜单中的相应项目建立新的菜单

[这个时候,您就可以对您的菜单随心所欲的作修改了。]

#11


很感谢蓝帆·雨轩的帮助,现在问题基本解决。使用了一个比较笨的方法。:)
首先在启动时将菜单删除。然后用VBA加入自己创建菜单的代码,并与宏代码进行了
关联,至于菜单只由一个表文件使用,有两种方法可以,一种是Add的时候有一个temperory
的参数,设置为true就是;还有一种就是关闭前将菜单删除,呵呵,真的很简单啊。
不过今天交给老板的时候,出现了一个错误。“Old Format or Invalid Type Library Error”,Google了一下,发现是个微软的bug,不过快下班了。也没有去验证。等过完五一了。
顺便结贴。同时祝大家五一节快乐。^_^

#1


有没有进工程资源管理器对代码进行修改?

#2


查过,代码中没有添加菜单的相关code,我是使用tool->customize,然后右键
点击相关需要修改的菜单栏进行修改的,修改完后,可以运行。但是当我关掉
excel后再重新打开时,发现我的修改不见了,还是原来的几个菜单,vba代码
中查找过,没有发现commandbar,不知道是怎么解决?

#3


而且我发现,该菜单是只出现在此工程中,而不是出现在excel启动后,所有的文件上的。是否是有个地方对此进行设置?急,谢谢!

#4


这样吧,您把您的文档发给我。

Yiqun_Zhao@163.com

如果设置了密码,记得密码也一起发过来。

我查看后给您答复!
[4.30-5.8期间我不会上网]

#5


肯定要用代码,用代码修改也可以 添加可以;
下面是添加Menu代码(不过你要先删除愿有菜单)
Sub Set_ToolMenu()
Dim mCaidan As Menu
    MenuBars(xlWorksheet).Reset
    
    Set mCaidan = MenuBars(xlWorksheet).Menus.Add("信息")
    Offen_ToolBars
    With mCaidan.MenuItems
        .Add "aa信息" 
        .Add "bb信息"           
    End With
    Set mCaidan = MenuBars(xlWorksheet).Menus.Add("查询")
    With mCaidan.MenuItems
    .Add "个别查询"
    End With
End Sub

#6


十分感谢您的帮忙,信已经发出
我的QQ:154009079
如果有任何问题,可以加我,或者可以发mail给我
谢谢!

#7


mail已经收到,我先看一下。

#8


mail已经发出。

这个可以直接用自定义菜单,然后指定宏。

#9


但是还是不能保存我所需要修改的菜单项,而且我发现在代码中放入auto_open代码后,不能够执行,是否该文件隐藏了一部分代码。。。(猜测)
PS:该工程是使用Office95编写的,不知是否有些隐藏或者什么,我用的版本是office2000和office XP.

#10


其实就是Auto_Open的一些代码对您的文档造成了影响。

您在OfficeXP中打开脚本编辑器中,可以看到对文档的很多属性都做了一定的设置。

工具--〉宏--〉Microsoft脚本编辑器--〉其中有很多加入的代码[顺便注意后面的一段.xml代码]
[如果您对JScript和XML熟悉的话,您可以直接更改这段代码,从而满足您的需求]

如果您对JScript和XML不熟悉,或者说不愿意去更改这些代码的话,您也可以按照以下步骤来实现:

1.右键单击工作表标签--〉查看代码--〉选择模块,依次导出[要注意名称的合法性,建议名称全部用英文]
2.记录下菜单中的相应项目[(菜单和子菜单,以及它们所引用的过程(宏)]
3.新建一空白文档
4.导入刚才导出的模块--〉根据记录的菜单中的相应项目建立新的菜单

或者如下:

1.右键单击工作表标签--〉查看代码--〉选择模块,依次导出[要注意名称的合法性,建议名称全部用英文]
2.记录下菜单中的相应项目[(菜单和子菜单,以及它们所引用的过程(宏)]
3.工具--〉宏--〉Microsoft脚本编辑器
4.双击MODULKAL.XLS--〉选中所有代码--〉删除--〉保存--〉转到Excel文档--〉选择覆盖更改--〉确定--〉关闭Microsoft脚本编辑器
5.工具--〉自定义--〉删除自定义的工具栏--〉确定 [这个步骤可以不要]
6.导入刚才导出的模块--〉根据记录的菜单中的相应项目建立新的菜单

[这个时候,您就可以对您的菜单随心所欲的作修改了。]

#11


很感谢蓝帆·雨轩的帮助,现在问题基本解决。使用了一个比较笨的方法。:)
首先在启动时将菜单删除。然后用VBA加入自己创建菜单的代码,并与宏代码进行了
关联,至于菜单只由一个表文件使用,有两种方法可以,一种是Add的时候有一个temperory
的参数,设置为true就是;还有一种就是关闭前将菜单删除,呵呵,真的很简单啊。
不过今天交给老板的时候,出现了一个错误。“Old Format or Invalid Type Library Error”,Google了一下,发现是个微软的bug,不过快下班了。也没有去验证。等过完五一了。
顺便结贴。同时祝大家五一节快乐。^_^