Excel VBA - 添加自定义数字格式
Excel VBA - add a custom number format
我有一个文件,在 Excel 之外生成,有很多百分比。所有这些百分比都有一个小数位。当导入 excel 时,Excel 会在百分比中添加第二个小数位 - 这似乎是 Excel 中百分比的默认格式。它只是添加了一个“0”。
我想将所有两位小数位的百分比格式设置为一位小数点。如果我手动执行此操作,使用 CTRL+H,Find format/replace 格式,一切顺利。但是我无法通过 VBA/macro 执行此操作,即使我在手动进行替换时记录了宏。录制宏生成的代码是这样的:
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%"
经过反复试验,我发现新格式需要在自定义格式列表中。但是默认情况下不存在单个小数位百分比。如果我手动将单个单元格格式化为所需的格式,则宏会起作用。当然,我不想对每个文件都这样做。
如有任何意见,我们将不胜感激。
提前致谢!
考虑简单的:
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
如果您将自定义数字格式应用于单个单元格,它将变为 'listed' 并且随后可用于将来的批量替换操作。我可能会建议使用类似
.range("A1").NumberFormat = "0.0%;@"
该特定格式掩码可以应用于任何包含百分比或文本的单元格。如果您有一个带有文本值的列 header 标签并应用了该 CNF,则 ;@
部分会强制文本按字面意思显示(无需更改)。通过这种方式,您可以接受更多的可能性在您放置第一个 CNF 的地方。使用一次后,可对剩余的百分比值进行批量替换操作。
我有一个文件,在 Excel 之外生成,有很多百分比。所有这些百分比都有一个小数位。当导入 excel 时,Excel 会在百分比中添加第二个小数位 - 这似乎是 Excel 中百分比的默认格式。它只是添加了一个“0”。
我想将所有两位小数位的百分比格式设置为一位小数点。如果我手动执行此操作,使用 CTRL+H,Find format/replace 格式,一切顺利。但是我无法通过 VBA/macro 执行此操作,即使我在手动进行替换时记录了宏。录制宏生成的代码是这样的:
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%"
经过反复试验,我发现新格式需要在自定义格式列表中。但是默认情况下不存在单个小数位百分比。如果我手动将单个单元格格式化为所需的格式,则宏会起作用。当然,我不想对每个文件都这样做。
如有任何意见,我们将不胜感激。
提前致谢!
考虑简单的:
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
如果您将自定义数字格式应用于单个单元格,它将变为 'listed' 并且随后可用于将来的批量替换操作。我可能会建议使用类似
.range("A1").NumberFormat = "0.0%;@"
该特定格式掩码可以应用于任何包含百分比或文本的单元格。如果您有一个带有文本值的列 header 标签并应用了该 CNF,则 ;@
部分会强制文本按字面意思显示(无需更改)。通过这种方式,您可以接受更多的可能性在您放置第一个 CNF 的地方。使用一次后,可对剩余的百分比值进行批量替换操作。