Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.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 - Fatal编程技术网

Excel 计算两个单元格之间的路由,区分;土地";及;水";细胞

Excel 计算两个单元格之间的路由,区分;土地";及;水";细胞,excel,vba,Excel,Vba,我使用Excel和VBA进行D&D,并制作了一张世界地图,将不同单元之间的资源分隔开来。我用它来计算城镇和资源之间的距离,这样我就可以计算出每磅资源的价格 为了求两点(资源和城镇)之间的距离,我使用以下公式: =SQRT(([@ROW]-$C$2)^2+([@COLUMN]-$D$2)^2) 这将使用列和行的差值作为三角形的其他边,查找两点之间的斜边 然而,我需要更进一步,并且有一种方法来判断斜边是穿过水砖还是陆地。您需要一个函数,该函数提供斜边上的单元格列表。然后你测试每个细胞,看看它是陆地

我使用Excel和VBA进行D&D,并制作了一张世界地图,将不同单元之间的资源分隔开来。我用它来计算城镇和资源之间的距离,这样我就可以计算出每磅资源的价格

为了求两点(资源和城镇)之间的距离,我使用以下公式:

=SQRT(([@ROW]-$C$2)^2+([@COLUMN]-$D$2)^2)
这将使用列和行的差值作为三角形的其他边,查找两点之间的斜边


然而,我需要更进一步,并且有一种方法来判断斜边是穿过水砖还是陆地。

您需要一个函数,该函数提供斜边上的单元格列表。然后你测试每个细胞,看看它是陆地还是水

步骤1:确定垂直或水平方向的最大距离

步骤2:将最小距离除以最大距离。这个比率是你在最小方向上移动的距离,每个单位的距离最大


步骤3:对最大距离执行循环x到y步骤1。对于循环的每次迭代,将比率从2累加到最小值的起始位置。从当前最大值加上开始的(整数+1)部分加上最短方向上的累积移动距离来获取单元格引用。

我不知道D&D,但当从A1移动到B2时,我会穿过A2上的水吗?Hi@Luuk看一下发布的屏幕截图。这并不是关于D&D,更多的是关于使用单元格引用来绘制一个区域的路线图。你应该总是花时间对你之前的问题给出适当的反馈。你的意思是选择最佳答案吗?我会问不同的问题,假设B2上有“水”,并且从A1移动到B2,如果可能的话,或者这是在水里旅行……顺便说一句,基本算法应该很简单,但你可能需要使它更复杂,以包括你“返回”的情况(起始单元格是D6,结束单元格是A2)