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