ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

用VBA 按要求填充颜色和笑脸

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-8-11 13:27 | 显示全部楼层 |阅读模式
各位大侠:
您们好!
附近里有2个工作表(1,工作日历  2,发注工作表,笑脸表)

首先对发注工作表进行操作:
  • A6:A36行  还原至 无填充颜色   A1列 标题年份与月份改写成 当前年份与月份。
  • A6:36列  填写当前月份日期(如现在8月份,则8月1日~8月31日)月份是 变量
  • 根据工作日历相应的日期状态填充颜色49407。     工作日历F~AJ列  比如发注表的8月1日 对应的 工作日历20150801 下一行为0 表示休息日 则在发注表的8月1日一整行填充49407颜色! 如果工作日历对应为1 正常工作日 则不填充颜色!

部品纳入状况表操作(范围G列~AK列):
  • B2 标题更改当前的年份与月份    M2 对工作日历当前月份工作日(状态为1)进行统计  有18个1 则反馈为18日
  • 还原操作.   判定A3列的 NO 号有几行(比如有65行)   并对 G5~AK69 复原操作  填充颜色为透明  删除全部笑脸表  第1~4行 是固定不变的  最后2行也是固定不操作的!
  • G4~KA4 写入当前月份日期     G3~AK3 写入星期几   根据对应的工作日历(状态为0 休息)按列填充10079487 颜色   (NO1开始  NO最后个结束)
  • 根据AL列要求 按行数填充笑脸  K2有笑脸 样板!  其中“1隔天“指的是 从月份第一工作日开始     “2隔天” 指的是从月份第二个工作日开始
  • 笑脸填充要保证后续的可扩展性能    比如我要添加NO66  我只有在该行 AL列 填入每天   VBA也能正确工作

附件.zip

39.86 KB, 下载次数: 28

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-8-12 10:06 来自手机 | 显示全部楼层
请各位大侠围观

TA的精华主题

TA的得分主题

发表于 2015-8-12 14:18 | 显示全部楼层
  1. Private Sub Workbook_Open()
  2. Dim nf$, yf$, dd, i&, rq$
  3. Sheet1.Activate
  4. Rows(6).Resize(31).Interior.ColorIndex = xlNone
  5. [a6].Resize(31, 1).ClearContents
  6. nf = Year(Date): yf = Month(Date)
  7. [a1] = "  " & nf & "年" & yf & "月Y部品发注"
  8. dd = Day(DateSerial(nf, yf + 1, 0))
  9. [a6] = DateSerial(nf, yf, 1)
  10. [a6].AutoFill [a6].Resize(dd, 1)
  11. rq = nf & Format(yf, "00")
  12. Call lqxs(rq)
  13. End Sub

  14. Sub lqxs(rq)
  15. Dim myPath$, myName$, Arr1, i&, x$, m&, d
  16. Set d = CreateObject("Scripting.Dictionary")
  17. myPath = ThisWorkbook.Path & ""
  18. myName = "工作日历.xlsx"
  19. With GetObject(myPath & myName)
  20.     Arr1 = .Sheets(1).Range("A1").CurrentRegion
  21.     For i = 2 To UBound(Arr1)
  22.         x = Arr1(i, 2) & ""
  23.         If Not d.exists(x) Then d(x) = i
  24.     Next
  25.     .Close False
  26. End With
  27. If d.exists(rq) Then
  28.     m = d(rq)
  29.     For i = 6 To Arr1(m, 5) + 5
  30.         If Arr1(m + 1, i) = 0 Then Cells(i, 1).Resize(1, 47).Interior.ColorIndex = 44
  31.     Next
  32. End If
  33. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-8-12 14:46 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
请见附件。
工作簿打开即可实现。

笑脸表与发注表.rar

30.84 KB, 下载次数: 67

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-8-14 23:23 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
蓝桥玄霜 发表于 2015-8-12 14:46
请见附件。
工作簿打开即可实现。

你好,第二个部品纳入状况表无效?

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-8-15 14:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
邀请各位大侠围观,第二工作表该如何写VBA?

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-8-15 14:25 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

版主:
      貌似你只完成了第一部分,关于第二个工作表 笑脸表填充并没涉及到?
部品纳入状况表操作(范围G列~AK列):
B2 标题更改当前的年份与月份    M2 对工作日历当前月份工作日(状态为1)进行统计  有18个1 则反馈为18日
还原操作.   判定A3列的 NO 号有几行(比如有65行)   并对 G5~AK69 复原操作  填充颜色为透明  删除全部笑脸表  第1~4行 是固定不变的  最后2行也是固定不操作的!
G4~KA4 写入当前月份日期     G3~AK3 写入星期几   根据对应的工作日历(状态为0 休息)按列填充10079487 颜色   (NO1开始  NO最后个结束)
根据AL列要求 按行数填充笑脸  K2有笑脸 样板!  其中“1隔天“指的是 从月份第一工作日开始     “2隔天” 指的是从月份第二个工作日开始
笑脸填充要保证后续的可扩展性能    比如我要添加NO66  我只有在该行 AL列 填入每天   VBA也能正确工作

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-8-16 18:11 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-8-17 00:40 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2015-8-17 11:25 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
al列的规则看来还有很多变数,你能详细列举出来吗?而且要规范化,便于编程。 另外,笑脸不建议用图案,操作太麻烦,可以直接插入笑脸这个字符
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-6-16 04:47 , Processed in 1.064233 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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