Excel VBA - 在两个值之间添加零

时间:2016-07-13 17:51:45

标签: excel vba

我已经做了很多搜索这个问题......而且我没有到达任何地方。

我有一个电子表格(特定列),其值如下:

42153-95    
54126-3    
13613-6331    
16136-336

我的目标是在现有的#之后(到4个地方)之后添加零。像:

42153-0095    
54126-0003    
13613-6331    
16136-0336

我在NumberFormat的引号中尝试了很多不同的选项:

Worksheets("Sheet1").Columns("C"). _ NumberFormat = "00000-0000"

到目前为止没有运气。 :(

非常感谢任何帮助。

谢谢!

3 个答案:

答案 0 :(得分:1)

gcc ... -I/path/to/headers ...

'/添加零的功能

survivor ratio

答案 1 :(得分:1)

正如@tigeravatar所说,它可以用公式完成。使用Evaluate函数,我们可以使用他在评论中给出的公式的数组形式。

您可以将其应用于C列中的值:

Worksheets("Sheet1").Range("C1:C4").Value = Worksheets("Sheet1").Evaluate("=INDEX(LEFT(C1:C4,6) & TEXT(--MID(C1:C4,7,LEN(C1:C4)),""0000""),)")

如果您的范围是动态的,并且您在lstrow这样的变量中有最后一行,则可以将所有C4替换为C" & lstrow & "

Worksheets("Sheet1").Range("C1:C" & lstrow).Value = Worksheets("Sheet1").Evaluate("=INDEX(LEFT(C1:C" & lstrow & ",6) & TEXT(--MID(C1:C" & lstrow & ",7,LEN(C1:C" & lstrow & ")),""0000""),)")

答案 2 :(得分:1)

选择您要处理并运行的单元格:

Sub dural()
    Dim r As Range

    bry = Array("0000", "000", "00", "0", "")
    For Each r In Selection
        ary = Split(r.Value, "-")
        ary(1) = bry(Len(ary(1))) & ary(1)
        r.Value = Join(ary, "-")
    Next r
End Sub

在:

enter image description here

之后:

enter image description here