VBA给单元格赋值时字符串末尾0被忽略如何实现精确匹配
VBA单元格赋值保留字符串末尾0的解决方法
这个问题的本质是Excel默认会自动将看起来是数值的输入内容转换为数字类型存储,因此会自动抹除末尾无意义的小数位0。要实现字符串内容完全精确匹配,可选择以下任意一种方案:
- 方案1:先将单元格格式设置为文本,再执行赋值操作
先修改单元格的数字格式为文本类型,后续输入的内容就不会被Excel自动做数值转换,会原样保留字符串的全部内容:' 先设置单元格为文本格式 ActiveCell.NumberFormat = "@" ' 再赋值,此时会原样保留"1.10" ActiveCell.Value = "1.10" - 方案2:赋值时添加英文单引号前缀
英文单引号是Excel内置的强制文本输入标记,添加后不会在单元格显示,也不会被计入单元格值的内容,仅起到告知Excel将后续内容按文本处理的作用:
执行后单元格实际存储的值就是字符串类型的ActiveCell.Value = "'1.10""1.10",符合精确匹配的要求。
注意:如果后续需要对该单元格的内容做数值计算,需要先用
CDbl(ActiveCell.Value)将文本转换为数值类型后再参与运算,否则会触发类型不匹配报错。
内容的提问来源于stack exchange,提问作者Kronax
相关产品推荐
相关产品推荐

