使用VBA根据时间自动合并填充

2025-04-25 11:30:10

1、打开Excel表格,点击【开发工具】,【Visual Basic】打开VBA编辑器。

使用VBA根据时间自动合并填充

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

使用VBA根据时间自动合并填充

3、在模块代码框里边输入以下VBA程序代码:Sub MergeInColor()Dim i, j, m, n, r As LongOn Error Resume Ne旌忭檀挢xt '忽略运行过程中出现的错误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 IfNextEnd Sub

使用VBA根据时间自动合并填充

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

5、在VBA编辑器的工具栏里边点击“运行”图标运行程序,也可以按下【F5】键运行程序。

使用VBA根据时间自动合并填充

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

使用VBA根据时间自动合并填充
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢