为了组织我的项目,我创建了一个excel工作表,它基本上是一个日历,但是日期不是固定的,并且因项目而异。某些日期应以不同的方式上色。到目前为止,我使用条件格式来实现此目的,但是我发现CF并不总是能按我希望的那样工作。此外,由于我做了很多复制和粘贴操作,因此CF规则随着时间的推移会加起来很大,从而减慢了工作表的速度。 VBA最终可能还会更灵活。
我首先使用以下代码为包含今天日期的单元格着色(我是VBA /编码初学者;该代码来自另一个网站,我刚刚对其进行了修改以满足自己的需求)。
Option Explicit
Sub Worksheet_Change(ByVal Target As Range)
Dim cell As Range
Dim Dates As Range
Set Dates = Range("B2:H2," & _
"B6:H6")
For Each cell In Dates
If Not IsDate(cell.Value) Then
End If
If IsEmpty(cell.Value) Then
End If
If cell.Value = Date Then
cell.Interior.ColorIndex = 3
'Include more conditions e.g. lookup date in list of holidays; if date = holiday then different color
ElseIf cell.Value - Date <> 0 Then
cell.Interior.ColorIndex = 0
End If
Next cell
End Sub
现在,我还希望宏将range.1“日期”中的日期与其他日期列表(range.2)(例如假期)进行比较。如果“日期”中的单元格与range.2中的单元格匹配,则匹配的单元格将获得另一种颜色。 CF没问题,但是我真的很茫然。
我尝试通过添加手动完成
ElseIf cell.Value = cell(1, 1).Value Then
cell.Interior.ColorIndex = 2
但是,这会为所有单元格着色,不仅为与cell(1,1)中的日期匹配的单元格着色。
非常感谢您的帮助。
亲切的问候 丹尼斯
答案 0 :(得分:0)
这是一个例子;代码会将ColA
中的值检查为ColB
中的值,如果找到匹配项,则为ColA
中的单元格着色,根据需要更改引用。
Dim xcel As Range
Dim ycel As Range
With Worksheets("Sheet1")
For Each xcel In .Range("A1", .Cells(.Rows.Count, "A").End(xlUp))
For Each ycel In .Range("B1", .Cells(.Rows.Count, "B").End(xlUp))
If xcel.Value = ycel.Value Then
xcel.Interior.Color = RGB(255, 255, 0)
End If
Next ycel
Next xcel
End With
答案 1 :(得分:0)
如果适当地定义range1和range2,则可以完成以下操作:
<a-entity
cursor-logic
cursor="rayOrigin: mouse"
raycaster="objects: .item">
</a-entity>