Excel VBA – 添加自定义数字格式

我有一个文件,生成Excel以外的百分比很多。 所有这些百分比都有一个小数位。 当导入到Excel中时,Excel向百分比添加了第二个小数位 – 这似乎是Excel中百分比的一些默认格式。 它只是增加了一个“0”。

我想格式化所有的二位小数百分比到一个小数点。 如果我手动这样做,通过使用CTRL + H,查找格式/replace格式,它进展顺利。 但是我不能通过VBA /macros来做到这一点,即使我手动进行replace时loggingmacros。 通过loggingmacros生成的代码是这样的:

Application.FindFormat.NumberFormat = "0.00%" Application.ReplaceFormat.NumberFormat = "0.0%" Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _ xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True 

失败发生在:

 Application.ReplaceFormat.NumberFormat = "0.0%" 

经过大量的试验和错误,我发现新格式需要在自定义格式列表中。 但是一位小数的百分比并不是默认的。 如果我手动格式化一个单元格到所需的格式,macros的作品。 当然,我不想每个文件都这么做。

任何input将不胜感激。

提前致谢!

如果将自定义数字格式应用于单个单元格,它将成为“列出”,并随后可用于批量replace操作。 我可能会推荐使用类似的东西,

  .range("A1").NumberFormat = "0.0%;@" 

该特定的格式掩码可以应用于任何具有百分比或文本的单元格。 如果您有一个带有文本值的列标题标签并应用了CNF,则;@部分将强制文本以字面forms显示(不会更改)。 以这种方式您可以放置​​第一个CNF的位置。 在使用过一次之后,可以在余下的百分比值上进行批量replace操作。

考虑简单:

 Sub dural() Dim r As Range For Each r In ActiveSheet.UsedRange If r.NumberFormat = "0.00%" Then r.NumberFormat = "0.0%" End If Next r End Sub