You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 16:16:11