我有一个小组全年的日程表。 第三行包含一年中的所有日期,接下来的几行具有每个组成员的名称。
A4:A9中指定的成员。 假期在单元格A20:A28中指定。
所以,我想要做的,可能是通过VBA,制定一个规则,如条件格式,在B4中插入单词“Holiday”:B9如果B3匹配20澳元的日期:28美元,然后进入C4:C9,如果C3匹配,依此类推。
现在我无法在每个单元格中写出这个条件,因为它是每个成员使用的时间表,这是我经常通过谷歌搜索获得的建议,我不能用条件格式化来做,所以我猜测VBA是要走的路,但到目前为止我发现的VBA代码似乎使用了特定的单元格而不会遍历每一列。
答案 0 :(得分:0)
在不质疑您的一般方法的情况下,执行您计划执行的操作的简单代码可以如下工作:
Option Explicit
Sub markhd()
' get calendardays, holidays and employees somehow into collections
' that can be looped. Since that information is stored in a worksheet,
' using ranges is one way to achive that
' holidays
Dim rhd As Range
Set rhd = ActiveSheet.Range("A20:A28")
' group employees
Dim remp As Range
Set remp = ActiveSheet.Range("A4:A9")
' calendar days
Dim rcal As Range
Set rcal = ActiveSheet.Range("B3:NB3")
Dim c As Object
' Loop every day (every c-object in your calendar days),
' then write "Holiday", if it matches an entry in your holiday-range
For Each c In rcal
If Not IsError(Application.Match(c, rhd.Cells, False)) Then
remp.Offset(0, c.Column - remp.Column).Value = "Holiday"
End If
Next c
End Sub
注意:
希望有所帮助!