You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AutoCAD VBA使用Val函数读取CSV时小数点变逗号问题求助

解决方法

问题根源

Val() 函数本身不受区域设置影响,始终识别点号为小数点,返回标准双精度数值。你看到的逗号是 MsgBox 输出时调用系统区域格式转换为字符串的呈现效果,h_long 变量内部存储的数值本身是正确的,直接赋值给 textStyle.height 可正常生效。
如果实际测试赋值确实报错,可按以下方案修改代码:

代码修改方案

去掉多余的 CDbl() 嵌套,Val() 本身返回的就是双精度数值,不需要二次转换,也可以主动替换字符串中的小数点分隔符匹配系统设置,彻底规避转换异常。
把 add_textstyle 子程序里的高度赋值行替换为以下任意一种即可:

' 方案1:直接使用Val()返回值
h_long = Val(vlineItems(3))

' 方案2:强制适配系统小数点分隔符,兼容性更强
Dim decSep As String
decSep = Application.International(acDecimalSeparator)
h_long = CDbl(Replace(vlineItems(3), ".", decSep))

额外优化提示

当前CSV读取逻辑未处理字段内带逗号的情况(例如示例CSV中带引号的字段如果包含逗号会被Split函数误拆分),如果后续CSV内容复杂度提升,可改用正则匹配或者专用CSV解析逻辑处理,避免拆分错误。

内容的提问来源于stack exchange,提问作者Patrick Legault

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 13:24:04