我有一个在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%"

经过大量的试验和错误,我发现新格式需要在“自定义格式”列表中。 但是默认情况下不存在单小数位的百分比。 如果我手动将单个单元格格式化为所需的格式,则宏将起作用。 当然,我不想对每个文件都这样做。

任何输入将不胜感激。

提前致谢!

#1楼 票数:4 已采纳

如果您将自定义数字格式应用于单个单元格,它将被“列出”并随后可用于批量替换操作以供将来使用。 我可能建议使用类似的方法,

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

该特定格式的掩码可以应用于带有百分比或文本的任何单元格。 如果您具有带有文本值的列标题标签并应用了CNF,则;@部分将强制按原样显示文本(不更改)。 通过这种方式你是开放的你把第一CNF更多的可能性。 使用一次后,其余百分比值将可用于批量替换操作。

#2楼 票数:1

考虑简单:

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

  ask by horace_vr translate from so

未解决问题?本站智能推荐:

2回复

VBA-强制Excel以自定义格式保存

对于正在工作的项目,我希望允许用户创建要保存为单个项目的数据导出,因为不可能为每个项目保存我的主要工作簿。 我创建了一个将数据导出到另一个工作簿的函数,但是现在我要确保用户不会直接更改导出的数据(通过设置其他文件格式,我认为用户会更想考虑打开工作簿,因此不会因“意外”而这么做) 所以
2回复

VBA自定义数字格式

我有一个小宏,它将自定义数字格式应用于单元格块: 因此,如果一个单元格包含1.25,它将显示为: 1.25英寸 我需要更改此宏,以便而不是显示英寸 ,而是显示双引号字符。 我一直无法摆脱双引号的功能。
2回复

VBA - 循环自定义类型

首先,我想序言,我不是一个大的Visual Basic人。 但是,我必须以VBA for Excel的形式使用它。 我遇到了一个困难。 我创建了一个自定义类,存储,如下所示 salesData和随后的salesDataItem如下: 我如何填充数据的简短示例 现在要
1回复

VBA-自定义循环

我想将某些表格从一张纸复制到另一张纸。 为此,我有以下代码: 但是,此代码将所有表从“模型”复制到“ Sheet1”。 我只需要名称为A,B,C,E,G,H,J和L的表(名称在D2,D15,D28,D41等中)。 有没有办法在for循环之前定义这些特定表并将其合并到循环中?
3回复

Excel自定义格式添加“记录前后

我想在excel中添加"之前的记录" 。 我还想在每条记录之后添加"| 。 我在VBA中使用自定义格式。 我的格式是"\\""@\\""|" 我的结果是 我需要 我似乎无法通过自定义格式获得正确的结果。 有没有替代解决方案?
1回复

VBA-将自定义对象添加到循环中的集合中

我已经创建了一个节点对象: 然后我尝试在for循环中向集合中添加一些节点对象 : 但是当我尝试运行它时,它只会说: 为什么会这样呢?
1回复

使用自定义数字格式VBA的变量

我有一个变量curr_code,它将从电子表格/用户获取的货币代码存储为字符串。 可能需要EUR / GBP / $或其他费用。 我有一个自定义数字格式,可以根据需要用来格式化电子表格中的数字: 如何允许此数字格式在格式化的数字末尾添加curr_code。 例如,给定cur
1回复

VBA - 查询自定义类的集合

在VBA中是否有一种方法可以查询名为People的自定义类的集合。 假设我有一个具有名字,姓氏和标题的自定义类。 然后,在我的主要SUB中,创建了一组人。 有没有办法查询该集合,即,给我所有名字==杰克的人。 谢谢