Excel精英培训网

 找回密码
 注册

[已解决]自定义排序代码出错问题

查看数: 5690 | 评论数: 21 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-9-16 12:55

正文摘要:

本帖最后由 ycb20010823 于 2017-10-29 13:37 编辑 我的自定义排序VBA代码,在Excel2007上运行正常,为啥在Excel2013或者Excel2016上运行后再保存,就提示“Microsoft Excel已停止工作”的对话框呢,然后Excel就 ...

回复

d346836673 发表于 2017-9-30 20:49
ycb20010823 发表于 2017-9-27 17:00
删除这句运行一次是可以了,下次运行就提示错误了;我也试了另种方式的自定义排序代码,也是运行正常,保 ...

那你把Application.DeleteCustomList注释掉。
然后在Application.AddCustomList前面加一行On Error Resume Next,防止重复自定义相同的序列报错
这样就可以正常运行,且不会报错了!
爱疯   本楼为最佳答案    发表于 2017-9-28 11:00
'用指定列中的序列自定义排序
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,没法试

ycb20010823 发表于 2017-9-27 17:00
d346836673 发表于 2017-9-24 23:31
Application.DeleteCustomList n + 1
删除这句就正常了。
或者用2003

删除这句运行一次是可以了,下次运行就提示错误了;我也试了另种方式的自定义排序代码,也是运行正常,保存闪退,难道是excel2013就和这些代码不兼容吗?
ycb20010823 发表于 2017-9-25 17:52
对的,运行正常,2007以下保存没问题,2013以上保存闪退,找不到代码的原因
grf1973 发表于 2017-9-25 15:27
2010测试正常,但运行后保存会直接闪退。
wc110wc110 发表于 2017-9-25 11:21
我电脑上只有2007,测试正常啊
hhzjxss 发表于 2017-9-25 10:55

我没有安装2013呀,无法帮你测试哦!
d346836673 发表于 2017-9-24 23:31
Application.DeleteCustomList n + 1
删除这句就正常了。
或者用2003
ycb20010823 发表于 2017-9-23 13:26
d346836673 发表于 2017-9-23 08:30
Windows10   64 位   2016 ,运行正常,楼主可以看哈其他程序,有何office软件冲突的。

运行正常,点保存一下试试,就提示错误了!!!

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-3-28 21:12 , Processed in 0.369326 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表