提问人:Tounn 提问时间:11/16/2023 最后编辑:Tounn 更新时间:11/20/2023 访问量:89
VBA:不在单元格中显示尾随零的最有效方法
VBA : Most efficient way to not display trailing zeros in a cell
问:
看到这篇文章后,我想知道当值作为字符串存储在单元格中时,使用 VBA 删除单元格中尾随零的最佳方法是什么。我的意思是最短的代码行和最快的方法(这两个标准在本问答中都很重要)。the best way
我尝试了这个有效但对我的眼睛来说不够有效:Sheet_Nomenclature.Cells(i, 10) = Trim(Sheet_Nomenclature.Cells(i, 10) / 10) * 10
编辑:多亏了这些评论,我将对一些可能造成误解的观点进行一些精确度的介绍。
当我说这是不正确的时,我的意思是这就是这个解决方案有效的原因。remove trailing zeros
not display the trailing zeros
目标也是这样的:或者23,450 -> 23,45
23,000 -> 23
希望每个人都能更清楚这一点。
答:
-1赞
Tounn
11/16/2023
#1
这是我自己找到的最准确的答案:Sheet1.Cells(i, 8) = CDbl(Sheet1.Cells(i, 8))
注意:本问答仅讨论尾随零(值后面的零)。我希望我能理解这是我在SA上的第一个问答。
评论
2赞
FaneDuru
11/16/2023
“值后面的零”是什么意思?至少向我们展示一个例子应该是件好事。你的意思是吗?如果是这样,它是否只是以这种方式格式化,还是一个字符串?查看您“找到”的解决方案,它可能是一个字符串/文本。如果是这样,你应该说出来......002345.234
2赞
FunThomas
11/16/2023
您的代码的作用是将字符串转换为数字。这不是“删除零*,而是将其转换为完全不同的数据类型。字符串可以包含您想要的任何字符(它也可以看起来像一个数字)。一个数字永远不会有任何前导或尾随零。
0赞
Storax
11/20/2023
如果单元格的格式为具有“尾随”零,则该解决方案将不起作用。DV系列
0赞
Tounn
11/20/2023
@Storax是的,这就是为什么我说,这是问答,我做一个特定的案例......
0赞
Storax
11/20/2023
具体情况是什么?帖子中没有任何关于特例的内容!如果我将单元格格式化为显示尾随零,则代码不会删除该数字格式。所以 23,000 不会变成 23!
评论
.NumberFormat
.NumberFormat