用EXCEL制作一份工作日历,涂颜色的单元格表示休息日(共有4种颜色,深红一种,浅红2种,橙色一种),白色表示工作日,现在需要统计每个月休息日的数量,如何实现?

在EXCEL中按条件选择数据,通常使用“筛选”功能,而且在EXCEL 2010中已经具备了按颜色筛选的功能,但是这种筛选只能在同一列数据中进行,对于不同列的数据就无能为力了。考虑用VBA实现,单元格的颜色信息对应哪个属性,经过一番查找,我终于找到了,该属性位于Sheet1.Cells(1, 1).Interior.Color,有了这个属性,后面的工作就很简单了,遍历整个区域,比对颜色信息,将每个月的休息日记录在一个数组中。

源代码如下:

Sub workday()

Dim wk(1 To 12)

'记录工作日的数组

Dim w1

w1 = 0

For n = 1 To 12

wk(n) = 0

Next

For i = 4 To 10

For k = 2 To 54

With Sheet1.Cells(i, k).Interior

If .Color = 10066431 Or .Color = 255 Or .Color = 10198015 Or .Color = 26367 Then

'读取颜色值,并进行判断

m = Month(Sheet1.Cells(i, k).Value)

'表中的日历实际是日期格式,可以用Month()函数读取该日期属于哪一个月,计入对应的wk()数组中

wk(m) = wk(m) + 1

End If

End With

Next

Next

For t = 1 To 12

Debug.Print t, wk(t)

Next

'输出

End Sub

用VBA统计涂色单元格的信息相关推荐

  1. EXCEL小技巧:如何统计非空单元格

    http://club.excelhome.net/thread-1187271-1-1.html 下面教大家如果用函数统计非空单元格的数量 首先我们来介绍几个统计函数: 1.COUNT(value1 ...

  2. VBA中获取合并单元格的真实地址

    2019独角兽企业重金招聘Python工程师标准>>> 二少工作需要在VBA中获取合并单元格的地址范围, 于是有了此方法,作此记录 Private Sub Worksheet_Bef ...

  3. VBA实现从EXCEL单元格更新或修改PPT对应文本框内容并且不改变格式

    VBA实现从EXCEL单元格更新或修改PPT对应文本框内容并且不改变格式 配置工作 开发 演示 注意点!!! 打赏 原创不容易,请不要抄袭! 配置工作 EXCEL 2010版本以上配置 文件-选项-自 ...

  4. VBA:Excel选中单元格后,相同值高亮显示

    VBA:Excel选中单元格后,相同值高亮显示 场景 代码释义 Excel中实际执行效果 场景 在Excel数据核对中,要检查同样的数据在表格里是否重复出现,可以利用重复值筛选的方式,但是重复值筛选这 ...

  5. Excel·VBA自定义函数筛选单元格区域重复值

    贴吧提问<哪位大神知道要怎么实现?>,Excel内置函数使用比较麻烦,VBA字典实现比较直观 自定义函数UNIQUE_IF筛选单元格区域中的值,可以选择返回其中的唯一值或重复值,并用分隔符 ...

  6. Excel VBA读取其它excel单元格内容详细案例

    Excel VBA 读取其它excel单元格内容详细案例 通过一个按钮读取其它excel表格的内容的方法: 创建一个按钮 在excel表单插入按钮,进入design mode后双击按钮进入宏程序编辑 ...

  7. Excel 2010 VBA 入门 028 向单元格输入公式

    目录 示例: 利用Formula属性给单元格输入公式 Formula属性和Value属性的联系与区别 利用FormulaR1C1属性给单元格输入公式 R1C1引用样式的规则 (1)"绝对引用 ...

  8. VBA开发:设置单元格数据有效性

    当我们开发VBA软件时,经常需要限制用户在单元格中的输入内容.比如,我们设计一个成本分析的软件,可能需要将不同的费用归集到相应的成本分类,假如我们有固定资产.营销费用.原材料等类,但是如果不加限制,很 ...

  9. VBA如何清除excel单元格的内容和格式?

    一.用VBA代码清除单元格里的内容 Range("a1:d10").ClearContents '清除A1:D10区域的公式/值 Range("a1:d10") ...

最新文章

  1. php linux权限,Linux权限位
  2. 模拟实现请求分页虚存页面替换算法_模拟卷二解答
  3. 日韩决裂,半导体谁最受伤?
  4. 怎么在eclipse里调试WebDriver的源代码
  5. 嵌入式linux svn,Linux下配置subversion使其支持svn+ssh方式访问
  6. Android的debug.keystore拒绝访问导致的生成异常及解决方案
  7. 概括ADO.NET数据库连接的所有形式(基础)
  8. Java面向对象---重写(Override)与重载(Overload)
  9. Android快速开发框架XUtils
  10. getvod.php_音视频播放_PHP SDK_服务端SDK_视频点播 - 阿里云
  11. spring笔记4-事务管理
  12. JAVA泛型详解2 转载
  13. 1.SOA架构:服务和微服务分析及设计--- 理解面向服务
  14. python的遍历循环语句for、不能遍历的数据类型是_14、python循环遍历 for 语法
  15. jest (让人愉悦的测试框架)
  16. 个人网站首页设计模板
  17. CKeditor配置
  18. [Luogu P3704] [BZOJ 4816] [SDOI2017]数字表格
  19. 学神乔明达和他堪称神迹的学习履历
  20. 储物点的距离【前缀和】

热门文章

  1. [译]为什么Vue不支持templateURL
  2. 循环赛日程安排(构造、分治)
  3. Java数据库表自动转化为PO对象
  4. c/c++教程 - 1.3 关键字、标识符命名规则
  5. IT职场人生系列之十二:语言与技术I
  6. 【lucene】入门级
  7. centos7安装浏览器
  8. AtCoder Regular Contest 101 (ARC101) D - Median of Medians 二分答案 树状数组
  9. [算法 笔记]2014年 去哪儿网 开发笔试题
  10. ExtAspNet发展规划