Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/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/0/vba/16.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
Arrays Excel VBA-检查相邻单元格中的数组_Arrays_Vba_Excel - Fatal编程技术网

Arrays Excel VBA-检查相邻单元格中的数组

Arrays Excel VBA-检查相邻单元格中的数组,arrays,vba,excel,Arrays,Vba,Excel,我在D13:D19中设置了一个数组,其中的值由用户输入。我正在修改工作表中的公式,使其不依赖于输入的所有单元格 在与数组相邻的列中,显示了与前一个单元格的更改,如下所示: =IF([@[Weight (lbs)]]="","",[@[Weight (lbs)]]-D17) 其中,D17是当前行[第18行]上方的单元格 我需要重做这个,以便它在相邻单元格中查找整数,如果存在整数,则它会检查其上方的数组中的最后一个值,并在公式中使用该值。如果不存在整数,单元格将保持空白 例如: Cell D15

我在D13:D19中设置了一个数组,其中的值由用户输入。我正在修改工作表中的公式,使其不依赖于输入的所有单元格

在与数组相邻的列中,显示了与前一个单元格的更改,如下所示:

=IF([@[Weight (lbs)]]="","",[@[Weight (lbs)]]-D17) 
其中,
D17
是当前行[第18行]上方的单元格

我需要重做这个,以便它在相邻单元格中查找整数,如果存在整数,则它会检查其上方的数组中的最后一个值,并在公式中使用该值。如果不存在整数,单元格将保持空白

例如:

Cell D15 = 155 
Cell D16 = 155 
Cell D17 = BLANK 
Cell D18 = 145

在E18中,公式将需要查看D18以查看是否存在整数,如果是,则将查找数组中最后填充的单元格,在本例中为D16。然后,它将从D18[D18-D16]中减去最后输入的单元格。

将其替换为公式中的
D17

INDEX(D:D,MATCH(1E+99,D1:INDEX(D:D,ROW()-1)))

它将返回最后一个单元格的值,其数字位于当前行上方。

最后一个填充的单元格位于D18上方吗?如果D18不是整数,它可能是十进制呢?是的。发生在D18上方的最后一个填充单元格,在本例中,由于跳过D17,该单元格为D16。数组D13:D19中的任何数字都可以是十进制,你是对的。工作得很好。再次感谢!有一个问题,我是否可以将索引限制在D13:D19范围而不是整列?是的,只需将
D:D
更改为您的范围,将
D1
更改为
D13
尝试此新公式,您可能需要手动输入公式:
=index($D13:$D19,MATCH(1E+99,$D13:index(D1:$D19,ROW()-1)))
因为注释有时会添加无法打印的字符。这对我来说是可行的,没有问题。所以从这里我不知道该告诉你什么。