将存储为文本的数字转换为列中的数字

0 excel formatting vba

我的 Excel 工作表中有一个混合数据列,其中数字的格式为“文本”。

一些例子:

  • 36
  • R4
  • 56
  • AF PL RFD
  • 65
  • DHU
  • 14

我需要将列中的所有数值转换为“数字”格式,以便我可以进一步处理数据。

下面抛出错误 400 没有任何进一步的解释:

Sheet1.Range("A2","A50000").Select
With Selection
    .NumberFormat = "General"
    .Value = .Value
End With
Run Code Online (Sandbox Code Playgroud)

我不知道我的列将包含多少行值,所以我必须使范围相当大。

小智 6

我注意到许多人尝试使用某种“数字格式”来回答这个问题,例如在 Home Ribbon 中找到的。我认为问题在于从源中提取数据,并在将鼠标悬停在单元格上时在单元格中显示绿色小箭头并弹出“警告”。这无法通过数字格式解决,并且很可能已被寻求帮助的人尝试过。我就是其中之一。

With ActiveSheet.Select
    Range("A2:A10000").Select
        For Each xCell In Selection
        xCell.Value = CDec(xCell.Value)
    Next xCell
End With
Run Code Online (Sandbox Code Playgroud)

马布特,丹。“在 Excel 中将文本转换为数字。” ThoughtCo,2018 年 6 月 14 日,thoughtco.com/convert-text-to-number-in-excel-3424223。


Gar*_*ent 5

避免尝试在同一语句中同时选择工作表和范围(事实上,您可以完全避免选择) :

Sub ytrewq()
    With Sheet1.Range("A2", "A50000")
        .NumberFormat = "General"
        .Value = .Value
    End With
End Sub
Run Code Online (Sandbox Code Playgroud)

看起来效果很好!

  • 如果只有数字,乘以 1 也有效 (2认同)