ycb20010823 发表于 2017-9-27 17:00 那你把Application.DeleteCustomList注释掉。 然后在Application.AddCustomList前面加一行On Error Resume Next,防止重复自定义相同的序列报错 这样就可以正常运行,且不会报错了! |
'用指定列中的序列自定义排序 Sub test() Dim n As Integer '获取自定义序列的个数 n = Application.CustomListCount '1)如果指定序列不存在,则添加 Sheets(1).Select If Application.GetCustomListContents(n)(1) <> [b4] Then Application.AddCustomList Range("B4:B49") End If '2)排序 Sheets(2).Select Range("a2:c" & Range("c65536").End(xlUp).Row).Sort key1:=Range("b1"), OrderCustom:=n + 1 '3)删除该序列 Application.DeleteCustomList n + 1 End Sub 没装2013,没法试 |
d346836673 发表于 2017-9-24 23:31 删除这句运行一次是可以了,下次运行就提示错误了;我也试了另种方式的自定义排序代码,也是运行正常,保存闪退,难道是excel2013就和这些代码不兼容吗? |
对的,运行正常,2007以下保存没问题,2013以上保存闪退,找不到代码的原因 |
2010测试正常,但运行后保存会直接闪退。 |
我电脑上只有2007,测试正常啊 |
ycb20010823 发表于 2017-9-22 19:48 我没有安装2013呀,无法帮你测试哦! |
Application.DeleteCustomList n + 1 删除这句就正常了。 或者用2003 |
d346836673 发表于 2017-9-23 08:30 运行正常,点保存一下试试,就提示错误了!!! |