ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 305|回复: 5

[已解决] 求缴费表自动成

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-12-29 17:07 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 yangqianming 于 2023-12-30 21:09 编辑

每月在计算陪餐费时表格数字多容易弄错,就想请老师们帮忙写个代码自动生成,需求是这样,在第三行自动填充每月工作日日期,首尾周可能不够5天,中间每周5天,每周两个教师陪餐,在就餐日缴费都相同早3元,中午晚上都是5元,师傅就餐人数固定,前四个只吃早餐午餐,其它吃三餐,缴费也i是早3元,中午晚上5元,我制作了一个2023年12月的模拟数据,请老师们看看能否把表头年月一改就自动生成这样的数据表,烦请老师们出手相助,谢谢! 餐费核算.rar (19.79 KB, 下载次数: 17)

TA的精华主题

TA的得分主题

发表于 2023-12-29 18:01 | 显示全部楼层
这样做表,自己折磨自己
餐费核算.rar (20.8 KB, 下载次数: 11)

image.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-12-30 21:08 | 显示全部楼层
【浪客】14-Anni(1272358927)已经给解决了,感谢!
陪餐缴费计算.rar (34.41 KB, 下载次数: 14)

TA的精华主题

TA的得分主题

发表于 2023-12-31 10:08 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Private Sub Worksheet_Change(ByVal T As Range)
If T.Row = 2 And T.Column = 27 Then
    If T.Value = "" Then [ah2] = ""
    rq = T.Value
    [ah2] = Year(rq) & "/" & Month(rq) & "/" & Day(DateSerial(Year(rq), Month(rq) + 1, 0))
    Dim i As Date
    js = Year(rq) & "/" & Month(rq) & "/" & Day(DateSerial(Year(rq), Month(rq) + 1, 0))
    y = 2
    ys = Cells(3, Columns.Count).End(xlToLeft).Column
    r = Cells(Rows.Count, 1).End(xlUp).Row
    If r > 4 And ys > 3 Then Range(Cells(3, 2), Cells(r - 1, ys)).Clear
    Rows("3:3").NumberFormatLocal = "m""月""d""日"";@"
    For i = rq To js
        xq = Weekday(i, 2)
        If xq <> 7 And xq <> 7 Then
            Cells(3, y) = i
            Cells(4, y) = "早"
            Cells(4, y + 1) = "中"
            Cells(4, y + 2) = "晚"
            Cells(3, y).Resize(1, 3).Merge
            y = y + 3
        End If
    Next i
    'y = y + 3
    Cells(3, y) = "小计"
    Cells(4, y) = "早"
    Cells(4, y + 1) = "中"
    Cells(4, y + 2) = "晚"
    Dim s As Integer
    For s = 5 To r
        Cells(s, y).FormulaR1C1 = "=SUMIFS(RC[-" & y - 2 & "]:RC[-1],R[-" & s - 4 & "]C[-" & y - 2 & "]:R[-" & s - 4 & "]C[-1],R[-" & s - 4 & "]C)"
        Cells(s, y + 1).FormulaR1C1 = "=SUMIFS(RC[-" & y + 1 - 2 & "]:RC[-2],R[-" & s - 4 & "]C[-" & y + 1 - 2 & "]:R[-" & s - 4 & "]C[-2],R[-" & s - 4 & "]C)"
        Cells(s, y + 2).FormulaR1C1 = "=SUMIFS(RC[-" & y + 2 - 2 & "]:RC[-3],R[-" & s - 4 & "]C[-" & y + 2 - 2 & "]:R[-" & s - 4 & "]C[-3],R[-" & s - 4 & "]C)"
         Cells(s, y + 3).FormulaR1C1 = "=SUM(RC[-3]:RC[-1])"
    Next s
    Cells(3, y).Resize(1, 3).Merge
    y = y + 3
    Cells(3, y) = "总计金额"
    Cells(3, y).Resize(2, 1).Merge
    Cells(3, y + 1) = "交款人签字"
    Cells(3, y + 1).Resize(2, 1).Merge
    Columns(y).ColumnWidth = 15
    Columns(y + 1).ColumnWidth = 15
    Range(Cells(3, 2), Cells(r, y + 1)).Borders.LineStyle = 1
End If
End Sub

TA的精华主题

TA的得分主题

发表于 2023-12-31 10:09 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-12-31 10:10 | 显示全部楼层
在AA2单元格输入开始日期,自动生成结束日期,本月除周末外的所有日期,最后的计算公式,
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-6-26 17:19 , Processed in 0.040574 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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