我正在编写vba代码,其中有各种深度的数据(斜率测斜仪),如下所示:
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))*(constant/constant)
其中*是初始读数,它总是在指定深度上的第一行数据。
B轴位移= ((A0-A180)/2)-((A0*-A180*)/2))*(constant/constant)
其中*是初始读数,它总是在指定深度上的第一行数据。
结式= SQRT(A轴位移)^2+ (B轴位移)^2
我很难找到如何使用vba实现这一点的例子,因为在同一张表上会出现不同的深度(未知数),公式需要在每个新的深度出现时重新开始。
任何帮助/提示都将不胜感激!
发布于 2017-06-01 23:33:39
我如何使用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)),"")附注:在位移公式中,我省略了(常数/常数)因子,因为它与答案无关,您可以轻松地将0.5因子乘以所需的任何因素。

https://stackoverflow.com/questions/44317892
复制相似问题