Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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
Excel:根据输入自动设置线条颜色_Excel_Cell_Background Color_Cells - Fatal编程技术网

Excel:根据输入自动设置线条颜色

Excel:根据输入自动设置线条颜色,excel,cell,background-color,cells,Excel,Cell,Background Color,Cells,我有一个很大的Excel文件,用于从多个来源收集有关某些事件的数据(我们称之为Event1、Event2、Event3…)。由于多个源可以提供关于同一事件的信息,因此对于引用同一事件的每个源,我插入一个新行和一个新ID(下图提供了一个示例:我有多个源描述事件1,因此我使用不同的ID对它们进行排序,即1.1、1.2……) 为了便于这些数据的可视化,我想用相同的颜色对涉及同一事件的所有条目的背景进行着色,如下图所示。例如,第一个单元格中包含整数1的所有行应为灰色,包含整数2的所有行应为粉色,依此类推

我有一个很大的Excel文件,用于从多个来源收集有关某些事件的数据(我们称之为Event1、Event2、Event3…)。由于多个源可以提供关于同一事件的信息,因此对于引用同一事件的每个源,我插入一个新行和一个新ID(下图提供了一个示例:我有多个源描述事件1,因此我使用不同的ID对它们进行排序,即1.1、1.2……)

为了便于这些数据的可视化,我想用相同的颜色对涉及同一事件的所有条目的背景进行着色,如下图所示。例如,第一个单元格中包含整数1的所有行应为灰色,包含整数2的所有行应为粉色,依此类推。 但是,我没有找到任何函数或命令来自动执行此操作。是否有在Excel中自动执行此操作的方法


您应该能够在步骤3中使用此方法:

在步骤3中,您需要输入一个特定于您需求的公式。我还没有测试过这些,但其中任何一个都可以:
=SEARCH(“1”,A1)>1
(其中
A1
Entry ID
列中对您的单元格的单元格引用)-您在这里要说的是查找/匹配以值
1
开头的任何单元格
=IF(LEFT(A1,1)=“1”)
(其中
A1
条目ID
列中对单元格的单元格引用)-您在这里要说的是在单元格
A1
中查找最左边的1个字符,如果这是
1
,则它匹配

参考文献:


这取决于活动的数量以及您是否愿意自己定义每个活动的颜色。如果有少量事件,您可以考虑像JORG建议的那样,为每个事件分别添加条件格式。这将使您能够自己设置配色方案。在有很多事件的情况下,您可以考虑添加一个辅助列,具有以下公式<代码>=值(左(A1;查找(“.”;A1)- 1))< /代码>。基于此列,您可以使用颜色比例为行添加条件格式。这种方法的缺点是Excel为您确定颜色。或者,您可以在VBA中按所需顺序定义颜色列表,循环每个标准化事件id,并分别设置背景颜色。

您还可以使用宏检查a列中的值,并在条目id更改为下一个数字时指定新颜色:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Row > 1 Then
    If IsNumeric(Target) Then
        If Target.Column = 1 Then
            If Application.WorksheetFunction.RoundDown(Target.Value, 0) = WorksheetFunction.RoundDown(Cells(Target.Row - 1, 1).Value, 0) + 1 Then

                    r = WorksheetFunction.RandBetween(0, 255)
                    g = WorksheetFunction.RandBetween(0, 255)
                    b = WorksheetFunction.RandBetween(0, 255)
                    Range(Cells(Target.Row, 1), Cells(Target.Row, 3)).Interior.Color = RGB(r, g, b)
            Else
                    Range(Cells(Target.Row - 1, 1), Cells(Target.Row - 1, 3)).Copy
                    Range(Cells(Target.Row, 1), Cells(Target.Row, 3)).PasteSpecial (xlPasteFormats)
                    Application.CutCopyMode = False
            End If
        End If
    End If
End If

End Sub

谢谢你的建议。事实上,有很多活动,但我还是采纳了Jorg的建议,添加了条件格式。你的建议很有效。非常感谢你