如何根据二维坐标及其值为单元格着色?新的Excel函数

如何根据二维坐标及其值为单元格着色?新的Excel函数,excel,excel-formula,ms-office,vba,Excel,Excel Formula,Ms Office,Vba,我是新的Excel EVB,我只是一个普通的Excel用户,但打算做一些专业的东西。我做了一些谷歌搜索,但是,我没有线索开始 我正在尝试创建一个新的excel函数,允许用户根据X、Y坐标及其值为单元格着色 首先,我有一个预定义的X,Y映射(见下面的a:E列),单元格C3是我的原点(0,0) 其次,我有一个X,Y数据表,其中包含每个(X,Y)坐标的值 现在,我想根据具有多个条件的表中的数据为X,Y贴图上色 如果值>=0,4E-06和9.9E-6,则颜色单元格(map)=红色,单元格值=值 例如,

我是新的Excel EVB,我只是一个普通的Excel用户,但打算做一些专业的东西。我做了一些谷歌搜索,但是,我没有线索开始

我正在尝试创建一个新的excel函数,允许用户根据X、Y坐标及其值为单元格着色

首先,我有一个预定义的X,Y映射(见下面的a:E列),单元格C3是我的原点(0,0)

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

现在,我想根据具有多个条件的表中的数据为X,Y贴图上色

如果值>=0,4E-06和9.9E-6,则颜色单元格(map)=红色,单元格值=值

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

最终结果如下所示:


问题:如何根据上述要求创建新的excel函数?有什么想法和意见吗?

我会采用子程序而不是函数。然后用类似
的东西遍历cols G:I,而不是isempty(.cells(intRow,7.value)
。 然后,您可以在每一行上使用cols G和H坐标设置相关的单元格颜色属性,使用与原点的偏移量。如果需要,可以通过将方向乘以-1来反转方向。 您可以使用一个私有函数,通过选择大小写从col I值返回颜色。
很抱歉,没有靠近计算机来编写代码,但是如果您知道VBA,那么编写代码应该很容易。

使用以下公式填充单元格

=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对匹配


这个数组乘以(和求和)值数组,得到单元格中的最终值。

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

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

您可以使用此公式获取单元格中的值,并根据您的条件应用条件格式
=SUMPRODUCT($G$2:$G$26=COLUMN()-3)*($H$2:$H$26=ROW()-3)*$I$2:$I$26)
您也可以使用条件格式,无需任何编码,除非您的函数很复杂,在这种情况下,您也可以从该选项调用它。是否可以解释公式?添加了解释。实际上,您可以转到“公式”选项卡->公式审核->计算公式以查看实际的计算。