Excel 修改匹配多个条件的每一行

Excel 修改匹配多个条件的每一行,excel,vba,Excel,Vba,我正在为项目设计人员配置计划 工作人员每天被分配到不同的项目。出于规划目的,我们需要“每个项目的员工”视图以及“每个员工的项目”视图 这使我创建了一个数据集,其中包括每天/员工成员组合的一个条目。大约有十几名工作人员,365天,这是一个需要手动修改的冗长列表 基本上,这是数据库: 真正的是大约5000行。在大型CTRL+F聚会上更改任何内容。 因此;用于添加人员计划的宏 在另一张表上,我构建了一个简单的数据输入表单。 人员选择工作人员,输入项目名称、开始日期和结束日期。然后,宏将查找与工作人员

我正在为项目设计人员配置计划

工作人员每天被分配到不同的项目。出于规划目的,我们需要“每个项目的员工”视图以及“每个员工的项目”视图

这使我创建了一个数据集,其中包括每天/员工成员组合的一个条目。大约有十几名工作人员,365天,这是一个需要手动修改的冗长列表

基本上,这是数据库:

真正的是大约5000行。在大型CTRL+F聚会上更改任何内容。
因此;用于添加人员计划的宏

在另一张表上,我构建了一个简单的数据输入表单。
人员选择工作人员,输入项目名称、开始日期和结束日期。然后,宏将查找与工作人员和所选日期范围匹配的行,并将数据集中的项目更改为作为输入给定的任何项目

我构建了数据集,并开始编写代码来定位正确的行。我想首先编写一些代码,将每个人的12月24日设置为“圣诞节”最简单。
为了让我自己更轻松,我想把它涂成红色最好

Sub AddHoliday()

Dim i As Long

For i = 1 To Sheets("2019-2020").Rows.Count

Next i

If Sheets("2019-2020").Cells(i, 1).Value = "24-12-2019" Then
    Sheets("2019-2020").Cells(i, 1).Font.Color = vbRed
End If

End Sub
我希望看到每个等于12月24日的日期变为红色,但我得到以下错误:


在IF语句的第一行。

问题:

Sub AddHoliday()

Dim i As Long

With Sheets("2019-2020")

    For i = 1 To .Cells(.Rows.Count, "A").End(xlUp).row

        If .Cells(i, 1).Value = 43823 Then ' 24-12-2019
           .Cells(i, 1).Font.Color = vbRed
        End If

    Next i

End With

End Sub
  • 如果应该在循环的内部
  • 日期应输入为数字,以确保Excel将
    24-12-2019
    识别为
    43823
  • 循环正在所有行上运行,它应该在工作表中的活动行上运行
使用:

Sub AddHoliday()

Dim i As Long

With Sheets("2019-2020")

    For i = 1 To .Cells(.Rows.Count, "A").End(xlUp).row

        If .Cells(i, 1).Value = 43823 Then ' 24-12-2019
           .Cells(i, 1).Font.Color = vbRed
        End If

    Next i

End With

End Sub

工作起来很有魅力!这已经帮助我改变了整个事情,能够改变每个人的项目计划,为一个单一的天,以一个具体的项目;给人们一个圣诞假期很有用:)下一个工作:能够输入一个范围,该范围将针对特定的人进行更改,检查他们是否已经计划好了事情。但希望我自己能做到。再次感谢!