|
本帖最后由 hfwufanhf2006 于 2019-10-30 15:52 编辑
什么叫共存?你这两个菜单是一模一样的,弄两个不是重复吗?唯一的不同是读取数据的方式不一样,建议设置个读取参数来分别处理;
如果实在想要弄两个快捷菜单,重复装载两次,用两个不同的快捷菜单名称应该可以,需要稍许修改下 main 的代码,我觉得没必要,还是设置参数好些。
我下面的范例是完全重写的,我实在看不来你原来的代码,不是不好,是风格不一样,主要是字典的用法差别太大。我用我擅长的递归重写了全部代码,所用时间是一样的,都需要6秒左右。
重写代码我化了大半天的时间,这个控件不熟,学习help就花了半天,真正写代码差不多2小时。
这只是范例,如果条件不对会有错误,比如没有先装载点击A列会出错,忽略它就好了;
更正:由于调试,有个别代码行有问题,你手动改一下:
1、主代码有一行因为之前测试注释掉了,要还原,代码是:
Application.CommandBars("fanyoulin").Delete
2、主代码对于台湾、澳门、香港这些没有子菜单的地区需要增加执行代码,在:
myButton.caption = arr(i, 1) 的后面
增加:
myButton.OnAction = "'WrToRng " & i & "," & 1 & "'"
没有这一行,这三个地区无法读取;
3、在读取的子过程 WrToRng 需要修改二个地方:
Cells(ActiveCell.Row, x2+1) = "分列读取"
改成:
Cells(ActiveCell.Row, 4) = "分列读取"
后面还有一行也是类似的修改成:
Cells(ActiveCell.Row, 4) = "连续读取"
原来用的x2是个变动值,多数情况下没问题,但台湾、澳门、香港由于没有子菜单,会在B列填充读取类别;
修改后的代码含义是全部都在第4列填上读取的参数类型,如果你不需要就删掉它;
|
|