ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] 如何利用EXCEL自动生成模板要求的上班时间 求助(很难的一个问题 目前还没人解出来)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-9-19 16:54 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
由于工作的需要,每个月在排班以后,需要将曲线版的排班  转换成模板要求的格式,请高手赐教,谢谢!

9-15号班表.rar

6.34 KB, 下载次数: 20

TA的精华主题

TA的得分主题

发表于 2011-9-19 17:48 | 显示全部楼层
  1. Private Sub CommandButton1_Click()
  2.     firlin = 3      '数据行的上一行(即标题的最后一行。标题总共有3行,1-3)
  3.     statime = CDate("7:30")
  4.     arrtmp = Range("c" & firlin - 1 & ":i" & Cells(Application.Rows.Count, "c").End(xlUp).Row)
  5.     '开始时间为7:30
  6.     Sec = 15            '时间间隔为15分钟
  7.     Application.ScreenUpdating = False
  8.     Sheet2.Select
  9.     With Sheet2
  10.         .Range("b4:iv67").ClearContents    '清楚原排班表
  11.         For i = 1 To UBound(arrtmp)
  12.             staffname = arrtmp(i, 1)
  13.             iCol = Application.Match(staffname, .Rows(2), 0)
  14.             For t = 2 To 6 Step 2
  15.                 '对每一段班,进行排班
  16.                 If arrtmp(i, t) <> "" Then
  17.                     '每段时间的开始行和结束行
  18.                     irow1 = firlin + DateDiff("n", statime, arrtmp(i, t)) / 15 + 1
  19.                     irow2 = firlin + DateDiff("n", statime, arrtmp(i, t + 1)) / 15
  20.                     .Range(GetColumnLetter(iCol) & irow1 & ":" & GetColumnLetter(iCol) & irow2) = 20
  21.                 End If
  22.             Next t
  23.             
  24.         Next i
  25.     End With
  26.     Application.ScreenUpdating = True
  27.     Erase arrtmp
  28.     MsgBox "OK"
  29. End Sub
复制代码
  1. Function GetColumnLetter(iCol) As String            '列号转列标
  2.     GetColumnLetter = VBA.Split(Cells(1, iCol).Address, "$")(1)
  3. End Function

复制代码

9-15号班表.rar

18.42 KB, 下载次数: 34

TA的精华主题

TA的得分主题

发表于 2011-9-19 17:49 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
见上面的附件。本身不是什么难题,主要是你问题没有详细描述清楚。所以很多人懒得回复你。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-9-19 18:33 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
呵呵  谢谢高手  其实不是别人懒得回复  而是我之前是发在函数版块  本来是想用函数直接完成的 但是好多天了 都没人会  所以才来VBA版块发布  其实问题描述已经很清楚的   

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-9-19 18:38 | 显示全部楼层
我刚才试了一下 你可能是把我的意思理解错了
我的意思是由曲线转换成 表格的形式   但是你写的这个程序  是由表格变成曲线的啊   

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-9-19 18:42 | 显示全部楼层
lxw6 发表于 2011-9-19 17:49
见上面的附件。本身不是什么难题,主要是你问题没有详细描述清楚。所以很多人懒得回复你。

我刚才试了一下 你可能是把我的意思理解错了
我的意思是由曲线转换成 表格的形式   但是你写的这个程序  是由表格变成曲线的啊   

TA的精华主题

TA的得分主题

发表于 2011-9-19 20:36 | 显示全部楼层
问题说的很清楚?自由曲线,到底是哪个工作表?表格又是哪个工作表?你可以引用工作表名称的。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-9-19 21:20 | 显示全部楼层
lxw6 发表于 2011-9-19 20:36
问题说的很清楚?自由曲线,到底是哪个工作表?表格又是哪个工作表?你可以引用工作表名称的。

不好意思  是从 9-15号班表"这个sheet" 变成"导入模板"中的格式   

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-9-20 12:48 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
这个问题已经解决了 现在把解决方案发给大家一起参考一下



9-15号班表.rar

29.22 KB, 下载次数: 38

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-25 20:01 , Processed in 0.036182 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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