excel - EXCEL VBA:用户表单文本框中的科学记数法
问题描述
我正在使用 VBA 在 EXCEL 中开发用户表单。表单中用户输入的默认值之一是 1E-12。我需要在用户表单中显示它。但是,当我在表单中初始化文本框时,EXCEL 立即将值的表示更改为 0.000000000001(当我检查它时,在编辑器和用户表单中)。当然,从计算上讲,这不是问题,但是,对于用户来说阅读起来有点困难(并且在表单中占用了很多空间来显示整数)。有没有办法强制 EXCEL 在用户表单文本框中以科学计数法显示这个值?
谢谢!
担
解决方案
您可以使用该VBA.Strings.Format$
函数来控制数字的字符串表示。
指定“Scientific”格式字符串会有所帮助,但如果您需要控制精度级别,则需要更精细的格式字符串。您可以创建一个FormatScientific
函数来抽象出这种复杂性:
Public Function FormatScientific(ByVal value as Double, Optional ByVal precision As Long = 6) As String
If precision < 1 Then precision = 1
Dim formatString As String
formatString = "0." & String(precision - 1, "0") & "#e-#"
FormatScientific = Format$(value, formatString)
End Function
在这里,如果未指定,我将precision
可选参数设为6
;调整你认为合适的。
现在,您可以使用一致数量的有效数字调用FormatScientific(0.0000123456789)
和获取1.234568e-5
,而不管您给它什么,而"Scientific"
格式字符串只给您1.23E-05
,这会丢失很多重要信息。
(改编自此代码的部分内容)
推荐阅读
- java - 未应用 Apache POI Java XSSFCell 数据格式
- azure - 如何获取 Azure 存储加密状态
- javascript - React Native 获取错误:“[未处理的承诺拒绝:TypeError:网络请求失败]”
- html - 缩小浏览器时文本超出页脚
- sql - SQL Server 2008 的期初和期末数量有问题?
- c# - 使用 C# 库观看 Kubernetes 事件
- typescript - Nexus GraqphQL 服务器未重新启动
- ios - 配置文件在临时分发中未能通过资格认证?
- python-3.x - 将 SQL 查询的结果格式化为 JSON
- javascript - Firebase 可调用函数:限制调用的权限设置