从VBA转换为Javascript

时间:2015-12-16 13:06:41

标签: javascript vba excel-vba excel

我正在尝试将一些VBA excel代码转换为JS,但即使我确信我,代码也无法正常工作。 以下是导致我出现问题的片段:

VBA: Tri1 = Tri1 + 2 ^ (2 - Tour)
JS: tri1 = tri1 + Math.pow(2, (2 - tour));

VBA: If (y And (2 ^ (5 - Tour))) <> (Tri2 And 2 ^ (5 - Tour)) Then
JS: if ((y && Math.pow(2, 5 - tour)) != (tri2 && Math.pow(2, 5 - tour)))

并且:

VBA: If (Tri1 And 2 ^ (2 - Tour)) = 0 Then
JS: if ((tri1 && Math.pow(2, 2 - tour)) == 0)

tri1,tri2和y都是整数。

我对JS很了解,但在VBA中没有。所以我之前已经搜索了很多。

谢谢!

1 个答案:

答案 0 :(得分:2)

这不是一个完整的答案,但我认为这些信息可以帮助您实现目标。因为您只是想将单词从vba翻译成js。但是js不是vba而js有一些特殊的东西。

首先:浮动数字

js中的浮动数字并不总是像它看起来那样。这个问题将为您提供有关该主题的更多信息: How to deal with floating point number precision in JavaScript?

由于代码snipets,我不知道你的一个变量是否是浮点数。但如果,你应该知道这个问题。

第二:比较

JS处理比较的方式与其他一些语言略有不同。关于该主题的一些有用链接:

特别是代码中的比较不是很清楚。例如:

var a = 10;
var b = 0;
document.write((a && b) == 0); // is true
document.write(a && b) // is 0
var a = 10;
var b = 11;
document.write((a && b) == 0); // is false
document.write(a && b) // is 11

这真的是你想要的行为吗?因此,请尝试简化您的比较,您的代码可以正常工作。