我有一个特定的代码系统,用于控制仓库中电子产品的当前余额。 每件作品都有自己的代码,格式如下:TYPE-000001
TYPE 是一个 4 个字母的代码,定义了设备的类型,然后它的前面包含一个 6 位数字。
我只想输入“type1”并让它填充“TYPE-000001”。我可以使用自定义格式实现此目的还是必须走 VB 路线?
我发现
-000000
可以很好地处理尾随零,但我找不到添加文本的方法。
正如 Ike 所评论的那样,您需要 VBA 在输入输入值的同一单元格中实现这一点。如果您可以在另一个单元格中使用该值,则可以使用此公式,其中 A1 指您的输入值(“type1”)。
=UPPER(LEFT(A1,4))
&"-"
&TEXT(
MID(A1,5,255),
"000000"
)
不,没有办法使用自定义格式来实现它。 要么使用公式并在不同的单元格中处理结果(即由@Thomas Lilleng提供),要么使用
VBA
。
此短代码会将
A1:A20
范围内输入的文本转换为您所需的格式:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:A20")) Is Nothing Or Target.Cells.Count > 1 Then Exit Sub
Application.EnableEvents = False
Target.Value = Left(Target.Value, 4) & "-" & Format(Mid(Target.Value, 5, 1000), "000000")
Application.EnableEvents = True
End Sub
将其工作表代码放在 Microsoft Excel 对象下。
结果: