如何根据二维坐标及其值来对单元格着色? 新的Excelfunction

我是新的Excel EVB,我只是一个正常的Excel用户,但打算做一些亲的东西。 我做了一些谷歌,但我不知道一开始。

我正在尝试创build一个新的Excel函数,允许用户根据X,Y坐标和它的值对单元格进行着色。

首先,我有一个预定义的X,Y映射(参见下面的Colum A:E),Cell C3是我的原点(0,0)。

其次,我有一个X,Y数据表,它包含每个(X,Y)坐标的值。

在这里输入图像说明

现在,我想根据多个条件表中的数据对X,Y地图进行着色。

如果值> = 0且<= 4E-06,则颜色单元格(地图)=绿色,单元格值=值

如果值> 4E-06 AND <= 9.9E-06,则颜色单元格(地图)=蓝色,单元格值=值

如果值> 9.9E-6,颜色单元格(地图)=红色,单元格值=值

例如。 从表中可以看出,如果X = 1,Y = 2,Value = 2.2E-05,则单元格D1将以红色着色,调用值将被设置为2.2E-05

在这里输入图像说明

最终的结果将如下所示:

在这里输入图像说明

问题:如何根据上述要求创build一个新的excel函数? 任何想法和投入?

使用下面的公式来填充单元格

 =SUMPRODUCT(($G$2:$G$26=COLUMN()-3)*($H$2:$H$26=-ROW()+3)*$I$2:$I$26) 

使用条件格式来获取单元格中的所需颜色。

条件格式

公式按要求解释:

COLUMN()-3-ROW()+3在每个单元格中给出正确的(X,Y)对。

($G$2:$G$26=COLUMN()-3)检查范围G2:G26中的每个单元,并与由COLUMN() – 3输出的X值进行比较。 这将输出和数组TRUE(值匹配)和FALSE。

($H$2:$H$26=-ROW()+3)检查Y值。

上述两个数组的乘积将产生1和0的数组(相当于TRUE和FALSE)。 这个数组中只有一个1,因为只有一个X,Y对匹配。

这个数组与数组相乘(和求和),给出了单元格中的最终值。

我会采取的方法将是一个子程序,而不是一个function。 然后迭代cols G:我有一些东西, while not isempty (.cells (intRow,7).value) 。 在每一行上,您可以使用列G和H坐标使用来自原点的偏移来设置相关的单元格颜色属性。 如有必要,您可以将方向翻转-1。 你可以使用一个私有函数来使用select case从col I值返回颜色。 对不起,不是靠近电脑写代码,但应该很容易,如果你知道VBA。

你的问题就像战舰一样,我的解决办法是:

 Sub Battleship() Dim cc As Range 'set center cell Dim arrVal() As Variant Dim lrw As Integer lrw = ActiveSheet().Range("G2").End(xlDown).Row arrVal = Range("G2:I" & lrw) Set cc = Range("C3") For i = 1 To UBound(arrVal()) cc.Offset(arrVal(i, 1), arrVal(i, 2)).Select Selection.Value = arrVal(i, 3) Select Case arrVal(i, 3) Case 0 To 0.000004 Selection.Interior.Color = 5296274 Case 0.000004 To 0.0000099 Selection.Interior.Color = 15773696 Case Is > 0.0000099 Selection.Interior.Color = 255 End Select Next i End Sub