我正在研究vba代码,其中我有不同深度的数据(对于Slope Inclinometers),如下所示:
Depth A0 A180 Checksum B0 B180 Checksum
4.5 (-1256) 1258 2 (-394) 378 (-16)
4.5 (-1250) 1257 7 (-396) 376 (-20)
4.5 (-1257) 1257 0 (-400) 374 (-26)
Depth A0 A180 Checksum B0 B180 Checksum
5 (-1214) 1214 0 (-472) 459 (-13)
5 (-1215) 1212 -3 (-472) 455 (-17)
5 (-1216) 1211 -5 (-473) 455 (-18)
未知数据将会存在(取决于用户转移到此表的数量)
现在我需要能够计算A轴位移,B轴位移以及具有以下公式的结果:
轴位移= [((A0-A180)/ 2) - ((A0 * -A180 *)/ 2))] *(常数/常数)
其中*是初始读数,它始终是指定深度的第一行数据。
B轴位移= [((A0-A180)/ 2) - ((A0 * -A180 *)/ 2))] *(常数/常数)
其中*是初始读数,它始终是指定深度的第一行数据。
结果= SQRT [(轴位移)^ 2 +(B轴位移)^ 2]
我正在努力寻找如何使用vba实现这一点的示例,因为在同一张纸上会存在各种深度(未知量),其中公式将需要在每个新深度处重新开始。
任何帮助/提示将不胜感激!
答案 0 :(得分:1)
我如何使用vba实现这一点,因为会有各种深度...
你仍然可以使用公式和简单的自动填充来完成它,因为公式可以找到当前深度的第一个出现并执行所有必要的计算,在标题行留下空白或空行。例如,您可以在第2行输入这些公式并填写所有行。
H2 (A Axis Displacement):
=IF(ISNUMBER($A2),0.5*(B2-C2-VLOOKUP($A2,$A:$F,2,0)+VLOOKUP($A2,$A:$F,3,0)), "")
I2 (B Axis Displacement):
=IF(ISNUMBER($A2),0.5*(E2-F2-VLOOKUP($A2,$A:$F,5,0)+VLOOKUP($A2,$A:$F,6,0)), "")
J2 (Resultant):
=IF(ISNUMBER($A2),SQRT(SUMSQ(H2,I2)),"")
P.S。在位移公式中,我省略了(常数/常数)因子,因为它与答案无关,您可以轻松地将0.5
因子乘以您需要的任何因子。