找回密码
 立即注册
搜索

求助大佬倒班VBA程序编写

8
回复
655
查看
[复制链接]

1

主题

6

帖子

2

幻币

初入江湖

Rank: 1

积分
10
2021-10-12 17:45:00 显示全部楼层 |阅读模式
我们倒班时间是01:30-08:30,08:30-16:30,16:30-01:30
VBA原有程序是如下(00:30-08:30,08:30-16:30,16:30-00:30固定8小时倒班的),我应该怎么改才能让倒班时间7、8、9小时在程序里继续循环呢
Sub rqybc(R1, R3)
Dim Date01 As Date
If TimeValue(R1) = TimeValue("00:30") Then
  Select Case (R1 Mod 8)
  Case 0
  R3.Value = 3
  Case 1
  R3.Value = 2
  Case 2
  R3.Value = 2
  Case 3
  R3.Value = 1
  Case 4
  R3.Value = 1
  Case 5
  R3.Value = 4
  Case 6
  R3.Value = 4
  Case 7
  R3.Value = 3
  End Select
ElseIf TimeValue(R1) = TimeValue("08:30") Then
  Select Case ((R1 - 1 / 3) Mod 8)
  Case 0
  R3.Value = 4
  Case 1
  R3.Value = 4
  Case 2
  R3.Value = 3
  Case 3
  R3.Value = 3
  Case 4
  R3.Value = 2
  Case 5
  R3.Value = 2
  Case 6
  R3.Value = 1
  Case 7
  R3.Value = 1
  End Select
ElseIf TimeValue(R1) = TimeValue("16:30") Then
Select Case ((R1 - 2 / 3) Mod 8)
  Case 0
  R3.Value = 1
  Case 1
  R3.Value = 1
  Case 2
  R3.Value = 4
  Case 3
  R3.Value = 4
  Case 4
  R3.Value = 3
  Case 5
  R3.Value = 3
  Case 6
  R3.Value = 2
  Case 7
  R3.Value = 2
  End Select
End If
End Sub
PPT学习论坛
回复

使用道具 举报

2

主题

8

帖子

4

幻币

初入江湖

Rank: 1

积分
12
2021-10-14 11:44:25 显示全部楼层
建议上传附件说明需求
PPT学习论坛
回复 支持 反对

使用道具 举报

0

主题

6

帖子

-1

幻币

初入江湖

Rank: 1

积分
4
2021-11-6 18:22:40 显示全部楼层
用mod??说明问题,上传附件,,
PPT学习论坛
回复 支持 反对

使用道具 举报

0

主题

8

帖子

-2

幻币

东方不败

积分
-17
2021-11-7 09:09:20 显示全部楼层
If TimeValue(R1) = TimeValue("01:30") Then
PPT学习论坛
回复 支持 反对

使用道具 举报

0

主题

8

帖子

-3

幻币

初入江湖

Rank: 1

积分
2
2021-11-18 00:49:53 显示全部楼层
别人问我的,我试了一下建倒班循环间隔7.8.9小时,没搞明白,感谢,明天看看我要一下附件
PPT学习论坛
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

幻币

初入江湖

Rank: 1

积分
5
2021-11-25 21:12:08 显示全部楼层
感谢,明天我要一下附件
PPT学习论坛
回复 支持 反对

使用道具 举报

1

主题

8

帖子

2

幻币

初入江湖

Rank: 1

积分
6
2021-12-6 01:02:26 显示全部楼层
这个我试过了不行,倒班时间间隔7.8.9小时的,按照这样改就变成了01:30,09:30,17:30不符合要求了
PPT学习论坛
回复 支持 反对

使用道具 举报

1

主题

4

帖子

1

幻币

初入江湖

Rank: 1

积分
6
2021-12-18 09:55:36 显示全部楼层
Sub rqybc(R1, R3)
Dim Date01 As Date
If TimeValue(R1) = TimeValue("01:30") Then
Select Case ((R1-1/24) Mod 8)
Case 0
   R3.Value = 3
Case 1
   R3.Value = 2
Case 2
   R3.Value = 2
Case 3
   R3.Value = 1
Case 4
   R3.Value = 1
Case 5
   R3.Value = 4
Case 6
   R3.Value = 4
'Case 7
'  R3.Value = 3
End Select
ElseIf TimeValue(R1) = TimeValue("08:30") Then
Select Case ((R1 - 1 / 3) Mod 8)
Case 0
   R3.Value = 4
Case 1
   R3.Value = 4
Case 2
   R3.Value = 3
Case 3
   R3.Value = 3
Case 4
   R3.Value = 2
Case 5
   R3.Value = 2
Case 6
   R3.Value = 1
Case 7
   R3.Value = 1
End Select
ElseIf TimeValue(R1) = TimeValue("16:30") Then
  Select Case ((R1 - 2 / 3) Mod 8)
Case 0
   R3.Value = 1
Case 1
   R3.Value = 1
Case 2
   R3.Value = 4
Case 3
   R3.Value = 4
Case 4
   R3.Value = 3
Case 5
   R3.Value = 3
Case 6
   R3.Value = 2
Case 7
   R3.Value = 2
Case Else
   R3.Value = 3

End Select
End If
End Sub
PPT学习论坛
回复 支持 反对

使用道具 举报

1

主题

10

帖子

1

幻币

初入江湖

Rank: 1

积分
12
2022-1-5 20:27:49 显示全部楼层
感谢,应该是可以了
PPT学习论坛
回复 支持 反对

使用道具 举报

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