排值日之VBA

xeon Post in 电脑杂谈
0

需要实现功能,每天一排轮值日,第一次ABCD 打扫卫生,EFGH分别负责其他项目。

共6排,轮到第六天时,BCDE打扫卫生,FGHA负责其他项目。

用VBA写了个程序,来一劳永逸的排此值日班表。程序如下

Option Explicit

Sub 导出()
Dim stu, temp As String
‘stu是整个二维数组,temp用来存放首个数据
Dim row, i, start, number As Integer
‘row用来表示行数,i表示执行的天数,start表示从哪个单元格执行,number用来做数据前移
stu = Range(“A1:H6”) ‘获取全班学生数据
start = 62
row = 1
For i = 1 To 48 Step 1

If row = 1 Then Range(“K” & start) = Range(“D8”) ‘将多出来的学生加入K列

Range(“C” & start & “:J” & start) = Application.Index(stu, row) ‘二维数据转为一维数据
temp = stu(row, 1) ‘保存第一个数据
For number = 1 To 7 Step 1
stu(row, number) = stu(row, number + 1)
Next
‘循环递归前移数据
stu(row, 8) = temp ‘将第一个数据移到末尾
row = row + 1
If row = 7 Then row = 1 ‘如果row等于7,重新赋值
start = start + 1
Next
End Sub

感兴趣的可以来函索取EXCEL原文件
« Prev: :Next »

Leave a Reply