在Excel电子表格后面测试Visual Basic脚本

时间:2016-10-03 12:27:56

标签: excel excel-vba vba

首先,我需要指出我之前从未编写过Visual Basic

我有一个旧电子表格,其中包含一些明显用Visual Basic编写的函数。一个示例函数是:


Function Helmert_X(X, Y, Z, DX, Y_Rot, Z_Rot, s)
'Computed Helmert transformed X coordinate.
'Input: - _
 cartesian XYZ coords (X,Y,Z), X translation (DX) all in meters ; _
 Y and Z rotations in seconds of arc (Y_Rot, Z_Rot) and scale in ppm (s).

'Convert rotations to radians and ppm scale to a factor
    Pi = 3.14159265358979
    sfactor = s * 0.000001
    RadY_Rot = (Y_Rot / 3600) * (Pi / 180)
    RadZ_Rot = (Z_Rot / 3600) * (Pi / 180)

'Compute transformed X coord
    Helmert_X = X + (X * sfactor) - (Y * RadZ_Rot) + (Z * RadY_Rot) + DX

End Function

我试图将这些函数转换为C.我已经差不多完成但我想要做的是构建一个用各种参数调用函数的可视化基础项目。然后我将有一个使用相同参数的C项目,并检查C获得与Visual Basic相同的答案。

当我将Visual Basic函数放入Visual Studio中的模块时,我遇到了很多错误。首先,评论不会全部注册为评论,显然需要声明变量。

我是否正确使用这些功能?无论如何在代码中使用它们而不修改它们?我可以使用Excel通过函数运行测试参数吗?

1 个答案:

答案 0 :(得分:0)

似乎您需要声明该函数中存在的所有变量。尝试在评论后添加这些行:

Dim Pi As Double
Dim sfactor As Double
Dim RadY_Rot As Double
Dim RadZ_Rot As Double

您还可以为函数附带的变量指定类型,以及函数本身:

Function Helmert_X(X as Double, Y as Double, Z as Double, DX as Double, Y_Rot as Double, Z_Rot as Double, s as Double) as Double

让我知道它是否有效或是否还有问题。