Excel宏之插入行,日期操作,时间操作,周末判断
来源:互联网 发布:零起点学通c语言 pdf 编辑:程序博客网 时间:2024/03/29 14:29
为了能拉到项目,在贿赂项目负责人员方面也是蛮拼的,直接帮忙减轻工作负担,用VB写了个宏处理对方的excel
需求:将一段请假的日期以天为单位拆分成一条一条记录,并且忽略节假日。(即周六周日包含在请假日期区域的话则不需要记录改行条目,ps这里有个五一假日需要过滤掉,对方主要是五月份的假期统计)
for instance:
考虑了一下,觉得判断第4、6列数据是否相等就行了,不等的话就增加一行,当前行当做4列当天数据,新增行的第4列为4列日期+1,如果是节假日则继续+1,直到不是节假日为止。但是更多的有可能的问题没有校验,只当做输入实例都没有问题来处理。
具体细节不多描述了,直接上代码。
Sub aa()
Dim i, j
i = 1
Do While (Cells(i, 1) <> "")
If Cells(i, 4) <> Cells(i, 6) Then '这里似乎用CDate(Cells(i,4))<CDate(Cells(i),6)更好
'插入行
Rows(i + 1).Insert
For j = 1 To 8
Cells(i + 1, j) = Cells(i, j)
Next
'i行结束日期
Cells(i, 6) = Cells(i, 4)
Cells(i, 7) = "17:30:00"
'i+1行开始日期
Cells(i + 1, 4) = DateAdd("d", 1, CDate(Cells(i + 1, 4)))
Cells(i + 1, 5) = "08:00:00"
'节假日
Do While (Application.Weekday(CDate(Cells(i + 1, 4)), 2) = 6) Or (Application.Weekday(CDate
(Cells(i + 1, 4)), 2) = 7) Or CDate(Cells(i + 1, 4)) = CDate("2015-05-01")
Cells(i + 1, 4) = DateAdd("d", 1, CDate(Cells(i + 1, 4)))
Loop
End If
'时间判断,注意格式转换问题,用TimeValue
If Cells(i, 5) = TimeValue("13:30:00") Or Cells(i, 7) = TimeValue("12:00:00") Then
Cells(i, 8) = "0.5"
Else
Cells(i, 8) = "1"
End If
i = i + 1
Loop
End Sub
- Excel宏之插入行,日期操作,时间操作,周末判断
- javascript 动态插入行 表格操作
- js 操作 table 复制行 插入行 获取index ...
- pb编程高亮行,插入行,条件查询等操作
- java日期操作(月末、周末等的日期操作)
- Excel VBA: 按照条件插入行
- Lua库之时间和日期操作
- Lua库之时间和日期操作
- Lua库之时间和日期操作
- Lua库之时间和日期操作
- 日期时间相关操作
- Oracle时间日期操作
- OEACLE 操作时间日期
- Oracle时间日期操作
- 日期时间操作
- 时间和日期操作
- 时间和日期操作
- delphi 日期时间操作
- 2015.4-5笔记
- linux程序分析工具介绍—ldd,nm
- Java 多线程设计模式
- android开发基础知识:OpenGL纹理本质
- 【Android SDK程序逆向分析与破解系列】之五:Android APK的静态分析
- Excel宏之插入行,日期操作,时间操作,周末判断
- Android自定义控件View(二)继承控件
- 获取当前外网IP
- 黑马程序员——c语言概述
- Dynamics CRM2015 Custom Code Validation Tool工具的使用
- spring mvc 注解单元测试
- 如何利用dex2jar反编译APK
- 单一职责原则+开放-封闭原则+依赖倒转原则+里氏代换原则【设计模式】【学习总结】
- matlab 常用设置