ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求写宏代码

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-12-3 22:40 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 木虫 于 2022-12-3 22:42 编辑

宏要求
要求B列等于A列加24小时
要求B列时间是当日12点前的填充红色
要求C列单元格出现四班时填充蓝色
每次宏运行从追加信息开始执行
希望大神再写上批注  好学习一下  拜托了

求宏.rar

6.71 KB, 下载次数: 15

求宏代码

TA的精华主题

TA的得分主题

发表于 2022-12-3 23:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
B列的数据是什么,楼主可以模拟实现后的效果

TA的精华主题

TA的得分主题

发表于 2022-12-4 01:55 | 显示全部楼层
  1. Sub test()
  2.     Dim rg As Range, cel As Range
  3.     Const ADD_HOUR As Double = 24 '自定义增加的小时数为常量,单位小时
  4.     With Sheets(1) '限定对象范围为表1
  5.         Set rg = .Range("A2:A" & .Cells(Rows.Count, 1).End(3).Row) '取得表1的A列的有效数据的单元格区域(A2至A列最后非空行[A12]),并将A2:A12单元格区域赋值给对象rg
  6.     End With
  7.    
  8.     rg.Interior.Color = xlNone 'rg范围填充色初始化,清除原先填充的颜色
  9.     For Each cel In rg '从A2开始往下遍历单元格至A12
  10.         cel.Offset(, 1) = cel.Value + ADD_HOUR / 24 'A列右偏移一格(即B列)的值=A列值+(ADD_HOUR / 24)
  11.         '这里(ADD_HOUR / 24)将小时转化为天数,因日期和时间的本质均为序列数(整数部分为日期序列数,小数部分为时间序列数),可直接计算。
  12.         '如A2单元格格式切换为常规后的实际值为44898.9291666667,序列数44898代表2022年12月3日,后面的小数序列数代表时间22:18:00
  13.         If Hour(cel.Offset(, 1)) <= 12 Then cel.Offset(, 1).Interior.Color = vbRed '判断,Hour(cel.Offset(, 1))取得B列序列数中的小时数
  14.         If InStr(cel.Offset(, 2), "四班") Then cel.Offset(, 2).Interior.Color = vbBlue '判断,InStr函数在cel.Offset(, 2)【C列】查找"四班"
  15.     Next
  16.    
  17. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-12-4 10:58 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
image.png

新建 XLS 工作表 (2).rar

16.41 KB, 下载次数: 7

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-4 19:48 | 显示全部楼层
本帖最后由 木虫 于 2022-12-4 20:24 编辑

Range("B" & i) = DateAdd("d", 1, Range("A" & i))   'B列=A列+1天
无法运行 是怎么回事呢?

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-4 20:22 | 显示全部楼层

谢谢  最后四班填颜色 想换成浅蓝色,vbBlue(颜色太重了)应该变什么?换了还几次也没成功。

TA的精华主题

TA的得分主题

发表于 2022-12-4 23:11 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
木虫 发表于 2022-12-4 20:22
谢谢  最后四班填颜色 想换成浅蓝色,vbBlue(颜色太重了)应该变什么?换了还几次也没成功。

你自己录制个宏插入几种颜色,选个满意的,记下.color属性的值,替换VBBLUE即可

TA的精华主题

TA的得分主题

发表于 2022-12-5 12:50 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
请楼主参考,颜色可以自己修改。

加时.zip

18.96 KB, 下载次数: 5

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-5 18:21 | 显示全部楼层
ssfx1982 发表于 2022-12-4 23:11
你自己录制个宏插入几种颜色,选个满意的,记下.color属性的值,替换VBBLUE即可

明白了 谢谢

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-5 18:26 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 木虫 于 2022-12-5 19:14 编辑
杨建营 发表于 2022-12-5 12:50
请楼主参考,颜色可以自己修改。

谢谢 你给于解答   有批注就更好了
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-20 09:17 , Processed in 0.045417 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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