使用VBA根据时间自动合并填充
来源:网络收集 点击: 时间:2024-09-07打开Excel表格,点击【开发工具】,【Visual Basic】打开VBA编辑器。

在VBA编辑器的菜单栏上面点击【插入】,【模块】。

在模块代码框里边输入以下VBA程序代码:
Sub MergeInColor()
Dim i, j, m, n, r As Long
On Error Resume Next 忽略运行过程中出现的错误
Set mysheet1 = ThisWorkbook.Worksheets(Sheet1) 定义工作表
mysheet1.Range(D2:AA1000).Clear 清空该范围内符内容及格式
mysheet1.Range(D2:AA1000).Borders.LineStyle = xlContinuous 添加实线边框
For r = 2 To 1000 从第二行开始
If mysheet1.Cells(r, 2) And mysheet1.Cells(r, 3) Then
i = InStr(1, mysheet1.Cells(r, 2), :) 获取字符“:”所在的位置
j = CInt(Mid(mysheet1.Cells(r, 2), 1, i - 1)) 截取字符并转换成数字
m = InStr(1, mysheet1.Cells(r, 3), :)
n = CInt(Mid(mysheet1.Cells(r, 3), 1, m - 1))
If j n Then 如果开始时间=开始时间,则
If CInt(Mid(mysheet1.Cells(r, 3), m + 1, 2)) 0 Then 如果第三列截取的分钟不为0,则
mysheet1.Range(Cells(r, j + 4), Cells(r, n + 4)).Merge 合并单元格
Else
mysheet1.Range(Cells(r, j + 4), Cells(r, n + 3)).Merge
End If
End If
mysheet1.Cells(r, j + 4) = mysheet1.Cells(r, 1) 把第一列对应的单元格赋值到对应的单元格里边
mysheet1.Cells(r, j + 4).HorizontalAlignment = xlCenter 合并单元狠菌格的内容水平居中
mysheet1.Cells(r, j + 4).VerticalAlignment = xlCenter 合并单元格的内容垂直居中
mysheet1.Cells(r, j + 4).Interior.Color = RGB(200, 180, 250) 合并单元格填充颜色
End If
Next
End Sub

VBA程序、函数释义:
(1)“Clear”将会清理指定范围里边单元格的内容、格销柱式(如:边框线、颜色等),使用之后,有些单元格格式可能需要进行恢复;
(2)“If”是判断函数,在判断条件满足之后再执行里边的程序;
(3)“Instr”是确定某一个字符所在的位置,即:Instr(起始位置,单元格,查找的字符)
(4)“Mid”主要用于截取某一字符串,即:Mid(单元格,起始位置,截取个数);
(5)“CInt”是把截取的数值转换成整数,以免后面计算出错。
5/6在VBA编辑器的工具栏里边点击“运行”图标运行程序,也可以按下【F5】键运行程序。

运行程序级场娃之后,将会在工作表上面看到执行的结果。

个人经验,仅供参考;不足之处,敬请谅解。
软件EXCELVBA版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_1197140.html