首页 > 解决方案 > .NumberFormat 不适用于使用 SUMIFS 的单元格

问题描述

我想使用印度货币逗号分隔样式格式化一系列单元格,即将默认格式设置123,456,78912,34,56,789,并且我正在使用以下代码:

LastCompoundInterval = Range("B" & Rows.Count).End(xlUp).Row
Range("F2:F" & LastCompoundInterval).Formula = "=SUMIFS($I$2:$I$" & LastTransaction & ",$H$2:$H$" & LastTransaction & ","">"" & B2, $H$2:$H$" & LastTransaction & ",""<="" & C2)"
With Range("F2:F" & LastCompoundInterval)
    .NumberFormat = "[>=10000000]##\,##\,##\,##0;[>=100000] ##\,##\,##0;##,##0"
End With

上述数字格式按预期适用于其他范围,但默认数字格式继续用于范围 F

标签: excelvba

解决方案


作为一个独立的 Excel 解决方案,我更改了您的公式以格式化它,因为它正在使用TEXT().

LastCompoundInterval = Range("B" & Rows.Count).End(xlUp).Row
Range("F2:F" & LastCompoundInterval).Formula = "=TEXT(SUMIFS($I$2:$I$" & LastTransaction & ",$H$2:$H$" & LastTransaction & ","">"" & B2, $H$2:$H$" & LastTransaction & ",""<="" & C2),""[<=9999999]###,####;###,###,####"")"

对于 VBA 解决方案,这将通过添加对工作簿/工作表的引用来帮助指导您。请务必将“Sheet1”更改为工作表的名称。

LastCompoundInterval = Workbooks(ThisWorkbook).Worksheets("Sheet1").Range("B" & Rows.Count).End(xlUp).Row
Workbooks(ThisWorkbook).Worksheets("Sheet1").Range("F2:F" & LastCompoundInterval).Formula = "=SUMIFS($I$2:$I$" & LastTransaction & ",$H$2:$H$" & LastTransaction & ","">"" & B2, $H$2:$H$" & LastTransaction & ",""<="" & C2)"
With Workbooks(ThisWorkbook).Worksheets("Sheet1").Range("F2:F" & LastCompoundInterval)
    .NumberFormat = "[>=10000000]##\,##\,##\,##0;[>=100000] ##\,##\,##0;##,##0"
End With

推荐阅读