如何从数字中删除前导0?

时间:2016-07-27 14:57:14

标签: excel-vba vba excel

我想从此列中的数字中删除所有前导0,而不会影响以字母开头的行。

enter image description here

5 个答案:

答案 0 :(得分:4)

对于非VBA解决方案,您可以突出显示整行,然后转到数据>文本到列,然后点击"完成"。数字将转换为数字格式,字符串将保持不变。

对于VBA解决方案,您可以遍历单元格:

 For each rngCell in Sheet1.Columns("A").Cells

 Next rngCell

在该迭代中,在替换

之前使用isnumeric()进行测试
 If isnumeric(rngCell.value) Then rngCell.value = rngCell.value + 0

或者那些东西。您还可以记录文本到列的位,然后在VBA中将列的范围分出来。取决于您对数据转换所需的控制程度。

答案 1 :(得分:4)

另一种非VBA解决方案......(最简单

  1. 突出显示数据
  2. 您会在屏幕旁边看到一个惊叹号,如屏幕截图所示。点击它
  3. 点击Convert To number,您就完成了:)
  4. enter image description here

    <强>结果

    enter image description here

答案 2 :(得分:2)

你可以使用这个公式。我的公式源数据从B3开始。

=REPLACE(B3,1,FIND(LEFT(SUBSTITUTE(B3,0,"")),B3)-1,"")

enter image description here

答案 3 :(得分:1)

尝试将单元转换为数字然后再转换为字符串 - 如果失败则已经是字符串。 vba convert string to int if string is a number

修改

尝试用正则表达式解决它:

With regEx
    .Global = True
    .MultiLine = True
    .IgnoreCase = False
    .Pattern = "^0*"
End With

If regEx.Test(strInput) Then
    strInput = regEx.Replace(strInput, "")
End If

来源:How to use Regular Expressions (Regex) in Microsoft Excel both in-cell and loops

答案 4 :(得分:0)

您可以使用带或不带VBA的公式进行:

=IF(ISNUMBER(Value(A1));Value(A1);A1)