我有一个Excel文档,可以控制我企业中Office的许可证。我想编辑单元格以自动添加“-”,以及它在产品密钥中的显示方式。请记住,这些键是按照示例XXXXX-XXXXX-XXXXX-XXXXX-XXXXX进行的,每组五个字符中都有数字和字母。用这种方式格式化单元格的代码是什么?
答案 0 :(得分:0)
如果您具有OFFICE 365 Excel,则可以使用TEXTJOIN的数组版本:
=TEXTJOIN("-",,MID(A1,(ROW(1:5)-1)*5+1,5))
作为数组公式,退出编辑模式时必须使用Ctrl-Shift-Enter而不是Enter进行确认。
如果不这样做,那么将简单解析值和串联:
=LEFT(A1,5) & "-" & MID(A1,6,5) & "-" & MID(A1,11,5) & "-" & MID(A1,16,5 )& "-" & MID(A1,21,5)
答案 1 :(得分:0)
您可以使用:
=CONCATENATE(MID(A1,1,5),"-",MID(A1,6,5),"-",MID(A1,11,5),"-",MID(A1,16,5),"-",MID(A1,21,5))
这是适用于任何Excel版本的标准公式。
答案 2 :(得分:0)
您将无法在单元格中输入产品密钥,并且要使该单元格使用单元格格式添加破折号。如果使用公式,则该公式必须位于单独的单元格中。如果要输入单元格来自动更新,可以使用VBA进行。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim strOrig As String, strNew As String
If Target.Column = 1 Then
If Len(Target.Value) = 25 Then
strOrig = Target.Value
strNew = Left(strOrig, 5) & "-" & Mid(strOrig, 6, 5) & "-" & Mid(strOrig, 11, 5) & "-" & Mid(strOrig, 16, 5) & "-" & Right(strOrig, 5)
Target.Value = strNew
End If
End If
End Sub
将此代码放在数据所在的工作表中。此代码假定产品密钥在A列中。如果它们在不同的列中,请将Target.column = 1更改为适当的列号。