数字格式

时间:2015-03-13 19:52:37

标签: excel vba excel-vba

我有一张大桌子,每个单元格都是从宏中填充的。但我不想在单元格中使用公式,我只想要数字,所以我将每个单元转换成这样:

 Sub FormulaToNumber(sheetName As String, sheetRange As String)
    Dim sh As Worksheet, Cell As Range, Plage As Range
    Set sh = Worksheets(sheetName)

        sh.Select

        With sh

        Set Plage = .Range(sheetRange)

        For Each Cell In Plage
            Cell.Value = Format(Cell.Value, "0.00")
            Cell.NumberFormat = "0.00"
        Next

        End With
        Application.CutCopyMode = False

End Sub

它有效,每个单元格现在都是一个数字而不是公式但是它是一个文本格式的数字,为什么? 我正在尝试使用cell.NumberFormat或plage.NumberFormat。但它不起作用。 Excel 一直告诉我它的文字格式。当我通过右键单击每个单元格并{:1}}

进行检查

如果我点击resolv问题,请将单元格从文本转换为数字。单元格现在是数字格式,文本在单元格的右侧对齐,我的summ函数运行良好。

2 个答案:

答案 0 :(得分:1)

这是因为 Format()使 Text 并且在放入 Text 之后更改NumberFormat将不会将其转换为数字。< / p>

Sub qwerty()
    Set Plage = Range("A1:A10")
    For Each Cell In Plage
        Cell.Value = Cell.Value
        Cell.NumberFormat = "0.00"
    Next
End Sub

答案 1 :(得分:1)

不需要For循环:

Sub MacroValues()
Range("A1:A10").Copy
Range("A1").PasteSpecial Paste:=xlPasteValues
End Sub