Excel-VBA中的“百分比”样式格式

时间:2017-06-07 09:46:21

标签: excel-vba vba excel

已经选择了n张纸,我试图将“百分比”样式应用于所有单元格的选择。 但是只有第一张表格被格式化。我使用的其他格式样式在所有工作表上都能完美运行。只有“百分比”似乎只在第一张表中起作用!这有什么特别的原因吗?粘贴下面的代码片段:提前感谢您的帮助

Range(Cells(143, 2), Cells(146, MarketRangeColumn + 10)).Select
Selection.Style = "Percent"
Range(Cells(100, 2), Cells(142, MarketRangeColumn + 10)).Select
Selection.Style = "Comma"
Selection.numberformat = "_(* #,##0.0_);_(* (#,##0.0);_(* ""-""??_);_(@_)"
Selection.numberformat = "_(* #,##0_);_(* (#,##0);_(* ""-""??_);_(@_)"

2 个答案:

答案 0 :(得分:0)

如果选择了多个工作表,则仅应用“样式”会影响活动工作表上的单元格。应用NumberFormat会影响所有工作表,因此您应该使用它而不是Style,或者遍历每个工作表。

答案 1 :(得分:0)

所有工作表选择方法

Sub test()
    Dim vName()
    Dim Ws As Worksheet, n As Integer
    For Each Ws In Worksheets
        n = n + 1
        ReDim Preserve vName(1 To n)
        vName(n) = Ws.Name
    Next Ws
    Sheets(vName).Select
    Range(Cells(143, 2), Cells(146, MarketRangeColumn + 10)).Select
    Selection.Style = "Percent"
    Range(Cells(100, 2), Cells(142, MarketRangeColumn + 10)).Select
    Selection.Style = "Comma"
    Selection.NumberFormat = "_(* #,##0.0_);_(* (#,##0.0);_(* ""-""??_);_(@_)"
    Selection.NumberFormat = "_(* #,##0_);_(* (#,##0);_(* ""-""??_);_(@_)"
End Sub