在MS Excel中。
我有一串长度不一的字符,但总长度是偶数个字节。我需要在每两个字节后放一个逗号,直到我到达字符串的末尾。一旦我到达字符串的末尾,我不想写逗号,我想停止。
例如:
'1234567890' should turn into '12,34,56,78,90'
'12' should turn into '12'
'1234' should turn into '12,34'
我现在的蛮力'方法是使用以下公式:
=MID(A1,1,2)&","&MID(A1,3,2)&","&MID(A1,5,2)&...&MID(A1,101,2)
但是这导致最后一堆逗号,然后我必须擦除。有没有更好的方法来编写这个公式,以便它到达原始字符串的末尾时自动停止?我认为必须有一种方法将LEN功能纳入其中,但我的技能太有限了。
答案 0 :(得分:1)
试试这个小 UDF :
Public Function InAComma(v As Variant) As String
Dim L As Long
L = Len(v)
If L = 2 Then
InAComma = v
Exit Function
End If
InAComma = ""
For i = 1 To L Step 2
InAComma = InAComma & "," & Mid(v, i, 2)
Next i
InAComma = Mid(InAComma, 2)
End Function
用户定义函数(UDF)非常易于安装和使用:
如果保存工作簿,UDF将随之保存。 如果您在2003年之后使用的是Excel版本,则必须保存 该文件为.xlsm而不是.xlsx
删除UDF:
从Excel使用UDF:
= inacomma(A1)
要了解有关宏的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
有关UDF的详细信息,请参阅:
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
必须启用宏才能使其生效!
答案 1 :(得分:0)
为此我不介意更有效地应用标准功能,所以考虑到公式的长度,我猜一点也不会成为一个问题:
=LEFT(MID(A1,1,2)&","&MID(A1,3,2)&","&MID(A1,5,2)...&MID(A1,101,2),1.5*LEN(A1)-1)