养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

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

时间:2024-11-12 05:47:59

如下表所示,根据B、C两列的时间,在指邈赕瑟遂定的列的时间点进行合并,然后填入A列对应的内容并填充颜色。如果内容量较少,可以手动合并、填充;内容量较多时,使用VBA程序处理比较快捷。

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

工具/原料

计算机

Windows7

Excel2010

方法/步骤

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

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

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

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

3、在模块代码框里边输入以下VBA程序代码:SubMergeInColor()Dim咯悝滩镞i,j,m,n,rAsLongOnErrorResumeNe旌忭檀挢xt'忽略运行过程中出现的错误Setmysheet1=ThisWorkbook.Worksheets("Sheet1")'定义工作表mysheet1.Range("D2:AA1000").Clear'清空该范围内符内容及格式mysheet1.Range("D2:AA1000").Borders.LineStyle=xlContinuous'添加实线边框Forr=2To1000'从第二行开始Ifmysheet1.Cells(r,2)<>""Andmysheet1.Cells(r,3)<>""Theni=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))Ifj<nThen'如果开始时间<=开始时间,则IfCInt(Mid(mysheet1.Cells(r,3),m+1,2))<>0Then'如果第三列截取的分钟不为0,则mysheet1.Range(Cells(r,j+4),Cells(r,n+4)).Merge'合并单元格Elsemysheet1.Range(Cells(r,j+4),Cells(r,n+3)).MergeEndIfEndIfmysheet1.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)'合并单元格填充颜色EndIfNextEndSub

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

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

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

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

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

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

© 一点知识