我想制作一个VBA以执行以下操作:
您能帮我写代码吗?
答案 0 :(得分:0)
您不需要VBA,可以将公式和条件格式结合使用:
假设月份在A1中,月份在B1中,那么C1中的以下公式将为您提供月份和年份的第一天:
=DATEVALUE("1/"&$A$1&"/"&$B$1)
这是针对设置为使用dd / mm / yyyy作为日期格式的系统,美国人需要更改顺序,以便使用DATEVALUE($ A $ 1&“ / 1 //&$ B $ 1)
函数WEEKDAY()返回与星期几相对应的1到7之间的数字,其中1 =星期日。因此,我们将其应用于单元格D1中的函数
=WEEKDAY(C1)
现在,我们转到希望列表开始的位置(假设A2)并输入
=IF(D1=1,C1+1,IF(D1=7,C1+2,C1))
这将是指定月份中第一个工作日的日期 现在在A3中输入
=IF(WEEKDAY(A2)=6,A2+3,a2+1)
这表示,如果上面的行是星期五,则在下周一进行,否则在第二天进行。现在,我们唯一需要做的就是在月底停止显示它:因此,如果日期在该月的最后一天之后,我们用If语句包装它以显示“”。
=IF(A2="","",IF(DAY(A2)=DAY(DATEVALUE("1/"&$A$1+1&"/"&$B$1)-1),"",IF(WEEKDAY(A2)=6,A2+3,A2+1)))
现在将其复制到第25行。这是您的日期-现在将数字格式设置为自定义设置“ dddd”,以将其显示为工作日。如果cell =星期五,请使用条件格式添加边框