我正在尝试使用自定义格式将日期从英语更改为法语。 常规Excel中的自定义代码为[$ -C0C] d mmmm; @,输出为20 juillet。 使用以下VBA代码时: 格式(范围(“ B2”),“ [$-C0C] d mmmm; @”) 输出是7月20日 [$ -C ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我有一个在Excel外部生成的文件,包含多个百分比。 所有这些百分比都有一个小数位。 当导入到excel中时,Excel会将百分比添加到小数点后第二位-这似乎是Excel中百分比的默认格式。 它只是添加一个“ 0”。
我想将所有双小数位百分比格式化为单个小数点。 如果我手动执行此操作,则使用CTRL + H,查找格式/替换格式,效果很好。 但是,即使我在手动进行替换时记录了宏,也无法通过VBA /宏来执行此操作。 通过记录宏生成的代码是这样的:
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%"
经过大量的试验和错误,我发现新格式需要在“自定义格式”列表中。 但是默认情况下不存在单小数位的百分比。 如果我手动将单个单元格格式化为所需的格式,则宏将起作用。 当然,我不想对每个文件都这样做。
任何输入将不胜感激。
提前致谢!
如果您将自定义数字格式应用于单个单元格,它将被“列出”并随后可用于批量替换操作以供将来使用。 我可能建议使用类似的方法,
.range("A1").NumberFormat = "0.0%;@"
该特定格式的掩码可以应用于带有百分比或文本的任何单元格。 如果您具有带有文本值的列标题标签并应用了CNF,则;@
部分将强制按原样显示文本(不更改)。 通过这种方式你是开放的,你把第一CNF更多的可能性。 使用一次后,其余百分比值将可用于批量替换操作。
考虑简单:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.