Excel VBA宏开发:员工工时网格生成及行和不超10限制
Excel VBA工时排班工具开发与代码修改请求
需求概述
- 基于Excel表中G2:AD2区域的时段用工人数数据,生成员工工时网格,并输出「6-14」「7-15」这类固定班次
- 现有
AutoFill宏已实现按时段需求在对应单元格填充1,但未满足单个员工(每行)工时求和不大于10的约束 - 需要修改现有宏或重新实现逻辑,匹配示例截图的填充规则
现有AutoFill宏代码
Sub AutoFill() Dim ws As Worksheet Dim col As Integer Dim row As Integer Dim suma As Integer Dim liczba_osob As Integer ' 设置操作的工作表 Set ws = ThisWorkbook.Sheets("01") ' 清空G5:AD36区域内容 ws.Range("G5:AD36").ClearContents ' 遍历G到Y列(对应列号7到30) For col = 7 To 30 ' 获取当前时段的用工人数 liczba_osob = ws.Cells(2, col).Value ' 初始化列计数为0 suma = 0 ' 填充单元格为1,直到达到当前时段的用工人数 For row = 5 To 36 ' 检查计数是否未达到用工人数 If suma < liczba_osob Then ws.Cells(row, col).Value = 1 suma = suma + 1 Else ' 超过人数则清空单元格(若已有内容) If Not IsEmpty(ws.Cells(row, col)) Then ws.Cells(row, col).ClearContents End If End If Next row Next col End Sub
内容的提问来源于stack exchange,提问作者Mateusz Jakubowski
相关产品推荐
相关产品推荐

