Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以使用excel中的串联函数根据另一个单元格中的数字添加前导零?_Excel_Vba - Fatal编程技术网

是否可以使用excel中的串联函数根据另一个单元格中的数字添加前导零?

是否可以使用excel中的串联函数根据另一个单元格中的数字添加前导零?,excel,vba,Excel,Vba,我试图找到一种方法,根据另一个单元格的大小,将前导零插入excel单元格 如果单元格A1=21,单元格b1=8,我希望A1等于00000021或 如果单元格A2=1,单元格b2=8,我希望A2等于00000001 非常感谢您的帮助。不清楚您希望何时/如何运行此功能,但要点是: activecell.NumberFormat = string(activecell.Offset(, 1).Value, "0") 若要在调整B列中的数字时自动执行此操作,请右键单击“工作表”选项卡,选择“查看代码”

我试图找到一种方法,根据另一个单元格的大小,将前导零插入excel单元格

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


非常感谢您的帮助。

不清楚您希望何时/如何运行此功能,但要点是:

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

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

这里显示了仅适用于Excel的公式:

=REPT(0,A2-LEN(A1))&A1
该公式创建一个包含所需数量的零的字符串,并将数字连接到零。当然,在A1以外的单元格中需要此公式

“&”进行连接。您还可以使用连接功能:

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

从我前面的示例中,我希望单元格在编辑时立即更新,这样,如果B1被更改,A1中已经存在的数字将具有前导零的数字,然后相应地更改,如果这有意义的话@Rory此代码是否特定于我给出的示例,因为我可能需要编辑使用的列,例如,我需要将其用于F1而不是B1,并且第一行中的标题是否会影响结果?我是否需要编辑它以使其忽略第一行@Rory@pnuts我不知道,可以吗@leo.genuardi只要要格式化的数字在左边的列中,您只需要将第2列更改为具有要显示的位数的列。如果要格式化的数字在A列中,而F列包含我需要添加的前导零的数量,该如何处理@RoryOr使用文本:=TEXTA1,REPT0,B1