我有一张大桌子,每个单元格都是从宏中填充的。但我不想在单元格中使用公式,我只想要数字,所以我将每个单元转换成这样:
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函数运行良好。
答案 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