Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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_Vba_Rgb - Fatal编程技术网

Excel 使用基于选定单元格的单元格中的值更改选定单元格的颜色

Excel 使用基于选定单元格的单元格中的值更改选定单元格的颜色,excel,vba,rgb,Excel,Vba,Rgb,我有一个宏,可以根据RGB值为单元格着色。 我有单元格A1、B1和C1用于RGB值 subfillwithrbg() 范围(“D1”).Interior.Color=RGB(范围(“A1”).值,范围(“B1”).值,范围(“C1”).值) 端接头 我可以选择工作表中的任何位置,运行宏,只有单元格D1会改变颜色 我想选择单元格D2,运行宏,单元格D2根据A2、B2和C2中的值更改颜色 我想我需要用一个引用设置活动单元格,然后1、2和3将从所选单元格偏移。 另外一个好处是,宏只能在D列中运行以防

我有一个宏,可以根据RGB值为单元格着色。
我有单元格A1、B1和C1用于RGB值

subfillwithrbg()
范围(“D1”).Interior.Color=RGB(范围(“A1”).值,范围(“B1”).值,范围(“C1”).值)
端接头
我可以选择工作表中的任何位置,运行宏,只有单元格D1会改变颜色

我想选择单元格D2,运行宏,单元格D2根据A2、B2和C2中的值更改颜色

我想我需要用一个引用设置活动单元格,然后1、2和3将从所选单元格偏移。

另外一个好处是,宏只能在D列中运行以防止错误。

这是一种简单的方法

  • 在代码
    Me中。
    指的是当前工作表

  • 您必须将此代码放入工作表的模块中

  • VBA中的列用数字表示(因此A列被称为第1列)
代码:

Private Sub Worksheet_Change(ByVal Target As Range)
    
    
    ' Prevent change if changed values are no in these columns (1,2,3) numbers are equivalent to A, B, C
    If Target.Column > 3 Then Exit Sub
    
    ' Change color of D column (4 = D)
    Me.Cells(Target.Row, 4).Interior.Color = RGB(Me.Cells(Target.Row, 1).Value, Me.Cells(Target.Row, 2).Value, Me.Cells(Target.Row, 3).Value)
    
End Sub
  • 如果希望仅在一次更改一个单元格时才工作,请添加以下行:

      ' Prevent change when more than one cell is changed
      If Target.Cells.Count > 1 Then Exit Sub
    

您需要在谷歌上搜索工作表更改/选择更改事件,然后使用偏移量使引用相对。您真是个天才!!非常感谢你!这对我很有用!:)