Excel VBA -如何在VBA编辑器中停止科学数字的自动格式设置为浮动

cu6pst1q  于 2023-06-30  发布在  其他
关注(0)|答案(2)|浏览(141)

我需要在VBA函数中输入一系列方程式。方程中包含的系数在科学记数法,我需要保持这种符号,以便检查VBA脚本容易。
但是,只要我在VBA编辑器中输入一个科学数字并点击Return,该数字就会自动转换为浮点数。虽然准确性不受影响,但可读性受到极大影响,使检查非常困难。
如何在VBA 7.0编辑器中取消自动格式设置?
例如,如果我在VBA编辑器中输入以下行:

e = 3.472e-4 * d + 2.156e-7

然后点击Return,我最终会看到下面这行

e = 0.0003472 * d + 0.0000002156

我需要以某种方式停止这个自动格式化的噩梦。

oalqel3c

oalqel3c1#

您可以为val创建一个1字符的 Package 器,如下所示:

Function v(s As String) As Double
    v = Val(s)
End Function

然后使用如下表达式:

e = v("3.472e-4") * d + v("2.156e-7")

这可能会最小化对可读性的影响
或者--为什么不只是接受编辑所做的,而是有解释背景公式的注解呢?
另一种方法--使用另一个编辑器,如Textpad,它可以使用VBA语法突出显示(在Textpad的情况下,您需要从其网站下载VBA语法定义文件以启用突出显示)。你会失去智能,但它仍然有一些很好的功能。我还没有使用VBA的Textpad,因为Excel中的内置编辑器对我来说已经足够了,但我已经广泛地使用了其他一些语言的Textpad,并发现它很容易使用。您可以在Textpad(或Notepad++)中编辑代码,并在需要测试时将其复制到VBA编辑器中。

nimxete2

nimxete22#

另一种解决方案是在编辑器中强制区分系数和数量级,不使用工程符号,而是直接使用10的幂:

e = 3.472 * 10 ^ (-4) * d + 2.156 * 10 ^ (-7)

但我不知道你是否认为这也损害了可读性。一个选项是进一步分解代码:

e1 = 3.472 * 10 ^ (-4)
e2 = 2.156 * 10 ^ (-7)
e = e1 * d + e2

只要记住,如果你使用这个符号,be careful about spacing

相关问题