你可以在excel中使用连接函数来根据另一个单元格中的数字添加前导零吗?

时间:2015-09-08 09:46:27

标签: excel excel-vba vba

我试图找到一种方法将前导零插入到依赖于另一个单元格大小的Excel单元格中,例如

如果单元格A1 = 21且单元格b1 = 8,我希望A1等于00000021或 如果单元格A2 = 1且单元格b2 = 8,我希望A2等于00000001

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

目前尚不清楚何时/如何运行,但要点是:

activecell.NumberFormat = string(activecell.Offset(, 1).Value, "0")

要在调整B列中的数字时自动执行此操作,请右键单击工作表标签,选择“查看代码”并将其粘贴到:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rCell                 As Range
    On Error GoTo clean_up
    If Not Intersect(Target, Range("B:B")) Is Nothing Then
        Application.EnableEvents = False
        For Each rCell In Intersect(Target, Range("B:B")).Cells
            If IsNumeric(rCell) Then Cells(rCell.Row, "A").NumberFormat = String(rCell.Value2, "0")
        Next rCell
    End If

clean_up:
    Application.EnableEvents = True

End Sub

编辑:我已经调整了代码,希望让列更容易适应。

答案 1 :(得分:1)

此处仅显示Excel的公式:

=REPT(0,A2-LEN(A1))&A1

该公式创建一个包含所需零值的字符串,并将该数字连接到零。当然,您需要在A1以外的单元格中使用此公式。

'&'连接。您还可以使用连接函数:

=CONCATENATE(REPT(0,A2-LEN(A1)),A1)