范围格式中每个单元格的 VBA 百分比

Posted

技术标签:

【中文标题】范围格式中每个单元格的 VBA 百分比【英文标题】:VBA For Each cell In Range Format as Percentage 【发布时间】:2017-08-08 06:12:56 【问题描述】:

我四处寻找这个,它看起来很简单,但我无法让它工作。

我有一个表格,其中一列需要格式化为百分比。下面是我的代码,但它没有格式化单元格,它只是将它们保留为小数。

我认为这是因为cell,即使声明为范围,实际上是单元格的值,所以我不知道如何引用该范围。

我的returnRebate 变量被声明为一个范围,并且循环正在循环正确的范围。

代码:

Dim cell As Range, p As Double
For Each cell In returnRebate
    p = cell.Value

    If p <> 0 And p > 1 Then
        p = p * 0.01
        cell.Value = p
        cell.NumberFormat = "Percent"    'Not formatting here
     ElseIf p < 1 And p > 0 Then
        'do nothing to it
    Else
        cell.Value = vbNullString
    End If
Next

【问题讨论】:

尝试将 .NumberFormat='Percent' 替换为 .NumberFormat="0.00%" @RyanL 天哪,我知道这很简单!我以为我已经尝试过了,但我想没有 【参考方案1】:

尝试将.NumberFormat='Percent' 替换为.NumberFormat="0.00%"

【讨论】:

我使用了.NumberFormat="0%",因为我不想要额外的小数。仍然很好用! @cheshire 刚用 Office Prof 2013 试过,小数点没问题,FWIW。也许版本相关(?)

以上是关于范围格式中每个单元格的 VBA 百分比的主要内容,如果未能解决你的问题,请参考以下文章

带有 bing 数字和百分比单元格的奇怪结果

VBA代码将一个单元格的条件格式复制到未指定范围的单元格

使用 UIRectFill 填充单元格的某些百分比

vba 如何在不更改值的情况下自定义格式单元格

如何使用百分比设置表格单元格的最大宽度?

通过 Excel VBA 通过 Outlook 发送电子邮件 - 将字符串转换为货币格式或百分比