Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 日期、列、条件格式、相邻单元格(下/上)_Vba_Excel_Date - Fatal编程技术网

Vba 日期、列、条件格式、相邻单元格(下/上)

Vba 日期、列、条件格式、相邻单元格(下/上),vba,excel,date,Vba,Excel,Date,大家好,大家好 我相信VBA代码是解决我的问题所必需的。 所以,请善待我,帮助我 我有很多日期的表(所有日期都在一个特定的列中)。 带有日期的单元格不按特殊顺序填充。 由于其他数据(其他列中的数据),筛选不适用 需要什么(问题): 是否有方法比较相邻单元格(上/下单元格)的日期 如果日期相同,则从具有相同日期的列中的1个单元格复制条件格式 只有在协商日期不同的情况下,条件格式才会更改 例如: Column (date) I conditional formatting interior

大家好,大家好

我相信VBA代码是解决我的问题所必需的。 所以,请善待我,帮助我

我有很多日期的表(所有日期都在一个特定的列中)。 带有日期的单元格不按特殊顺序填充。 由于其他数据(其他列中的数据),筛选不适用

需要什么(问题):

  • 是否有方法比较相邻单元格(上/下单元格)的日期

  • 如果日期相同,则从具有相同日期的列中的1个单元格复制条件格式

  • 只有在协商日期不同的情况下,条件格式才会更改

例如:

Column (date)   I conditional formatting interior cell color

A           I   (CF)

25.11.2017  I   blue

26.11.2017  I   red

26.11.2017  I   red

26.11.2017  I   red

22.11.2017  I   blue

22.11.2017  I   blue

25.11.2017  I   red

etc.        I   etc.
我熟悉VBA,所以VBA代码会很棒。我相信,这里需要私人潜水艇

非常感谢

克罗地亚的问候


Marko

假设数据从单元格A1开始。我认为这可以简化一点

但是,

Public Sub ColourCells()

   Dim wb As Workbook
   Dim wsSource As Worksheet

   Set wb = ThisWorkbook
   Set wsSource = wb.Worksheets("Sheet1")

   Dim lastRow As Long

   lastRow = wsSource.Cells(wsSource.Rows.Count, "A").End(xlUp).Row

   Dim loopRange As Range

   Set loopRange = wsSource.Range("A1:A" & lastRow) ' adjust here if starts elsewhere

   Dim currValue As Variant
   Dim cellColor As String

   cellColor = vbBlue

   Dim currCell As Range

   For Each currCell In loopRange.Rows

       If Not IsEmpty(currCell) Then

           If currCell.Row = 1 Then 
                currCell.Font.Color = cellColor
                currValue = currCell.Value2

           ElseIf currCell = currValue Then
                currCell.Font.Color = cellColor

           Else
                If cellColor = vbBlue Then
                    cellColor = vbRed
                Else  
                    cellColor = vbBlue
                End If

                currCell.Font.Color = cellColor
                currValue = currCell.Value2

          End If

       End If

   Next currCell

End sub

实际源列中是否有空格?单元格中没有空格。列中可能有空单元格。请详细说明着色标准。着色标准-这是我需要您帮助的主要原因:-更改日期的单元格(与上面的单元格相比)需要使用特定颜色(例如:红色)着色,例如-单元格A2(26.11.2017)与单元格A1(24.112017)相比将A2单元内部变为红色-下一个日期与上面的单元进行比较(偏移量(-1,0))示例A3单元(2017年11月26日)与A2单元(2017年11月26日)相比将A3单元内部变为与A2单元内部相同的颜色-下一个日期/A4单元(2017年11月30日)与A3单元(2017年11月26日)相比将A4单元内部变为蓝色-A5单元(2017年11月30日)与A4以上的单元格相比(2017年11月30日),单元格A%的内部与A4内部相同,--日期列中可能有空白单元格,空白单元格的格式无关紧要(可以合并为红色、蓝色或无颜色)日期范围非常大(2007年到现在(未来)之间的任何日期)。QHarr当我看到你时,我会给你买啤酒。你的程序运行得很好。这很简单,最重要的是完成这项工作。再一次,非常感谢。你好,我很高兴能帮上忙。