Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2821|回复: 8

[已解决]排课

[复制链接]
发表于 2016-3-27 18:27 | 显示全部楼层 |阅读模式
排课.zip (6.63 KB, 下载次数: 17)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-3-27 18:55 | 显示全部楼层    本楼为最佳答案   
QQ截图20160327184736.jpg

排课2.rar (13.1 KB, 下载次数: 32)

点评

d(x) = d(x) + 1这个d(x)+1就是字典项的值是吗?  发表于 2016-3-28 21:30
回复

使用道具 举报

发表于 2016-3-27 19:13 | 显示全部楼层
本帖最后由 lichuanboy44 于 2016-3-27 19:17 编辑

练手,也试了一下。
楼上数组内操作,速度快,我的插入行时在工作表操作较多,如果数据量大,速度较慢。

排课.zip

13.19 KB, 下载次数: 16

回复

使用道具 举报

发表于 2016-3-28 09:34 | 显示全部楼层
Sub test2()
    Dim A, B(1 To 10000, 1 To 2), i, s, n
    Sheets(1).Select
    Range("A:B").Sort Key1:=Range("A1"), Order1:=xlAscending, _
                      Key2:=Range("B1"), Order2:=xlAscending, Header:=xlYes
    A = Range("a1:b" & Range("a65536").End(3).Row + 1)
    n = 8

    For i = 2 To UBound(A) - 1
        s = s + 1
        B(s, 1) = A(i, 1)
        B(s, 2) = A(i, 2)

        '当与下次不一样时,就修改s
        If A(i, 1) <> A(i + 1, 1) Or A(i, 2) <> A(i + 1, 2) Then
            s = IIf(s Mod n = 0, s, (s \ n + 1) * n)
        End If
    Next i

    With Sheets(2)
        .Select
        .Range("a:b") = ""
        .[a1].Resize(s, 2) = B
    End With
End Sub

排课3.rar (15.15 KB, 下载次数: 21)
回复

使用道具 举报

 楼主| 发表于 2016-3-28 21:33 | 显示全部楼层
爱疯 发表于 2016-3-27 18:55
按步就搬想的

老师能用一个按钮增加删除行吗?
回复

使用道具 举报

发表于 2016-3-28 21:34 | 显示全部楼层
d(x)+1,是字典项的值,更具体的说是x的出现次数
回复

使用道具 举报

发表于 2016-3-28 21:37 | 显示全部楼层
用一个按钮,增加删除行,不懂是要做什么
回复

使用道具 举报

 楼主| 发表于 2016-3-29 22:46 | 显示全部楼层
爱疯 发表于 2016-3-28 21:37
用一个按钮,增加删除行,不懂是要做什么

就是当有空行时就删除空行,没有空行时就增加行
回复

使用道具 举报

发表于 2020-6-19 14:25 | 显示全部楼层
谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-20 05:30 , Processed in 0.531240 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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