在一串数字VBA的开头删除零

时间:2016-04-06 22:06:22

标签: vba excel-vba excel

我有一列数字,如果数字以零开头,我需要从列中的每个单元格中删除前导零。

3 个答案:

答案 0 :(得分:2)

尝试,

with worksheets("Sheet1")
    with .columns(1)
        .numberformat = "General"
        .texttocolumns destination:=.cells(1), _
                       datatype:=xlFixedWidth, fieldinfo:=Array(0, 1)
    end with
end with

答案 1 :(得分:1)

我确信你可以弄清楚如何遍历每个单元格,所以我不打算在下面的代码示例中演示。这样就可以了。用您需要处理的每个单元替换A4。

Dim My_Number As String
Dim i As Integer
My_Number = Range("A4")
For i = 1 To Len(My_Number) - 1
    If InStr(1, My_Number, "0") = 1 Then
        My_Number = Right(My_Number, Len(My_Number) - 1)
    Else
        Range("A4") = My_Number
        Exit For
    End If
Next

Instr正在寻找弦的第一个位置的零。如果if找到零,则下一行将除第一个(零)之外的所有字符串字符写入单元格。

答案 2 :(得分:0)

如果转换为数字并不是一个可行的解决方案,那么这个UDF将起作用:

Function StripLeadingZeros(MyString As String)
Dim X As Long
For X = 1 To Len(MyString)
    If Left(MyString, 1) = "0" Then
        MyString = Right(MyString, Len(MyString) - 1)
    Else
        Exit For
    End If
Next
StripLeadingZeros = MyString
End Function