Excel VBA UDF为string中的每个字符添加前缀

我寻找一种方法来有一个UDF,我可以把一个单元格referance将在每个字符前添加“_”下划线的前缀。

例如单元格中的“testing”,UDF结果将是“_T_E_S_T”

一个简单的方法可以

Function addUndescore(c As range) Dim x As String x = "_" & Mid(c, 1, 1) For i = 2 To Len(c) x = x & "_" & Mid(c, i, 1) Next i addUndescore = x End Function 

使用formula = addUndescore(你的参考单元格)

怎么样:

 Public Function UnderScore(sIN As String) As String Dim i As Long UnderScore = "" For i = 1 To Len(sIN) UnderScore = UnderScore & "_" & Mid(sIN, i, 1) Next i End Function 

稍微不同的版本:允许用户可选地改变前缀,使得AddPrefix(“TEST”)返回“_T_E_S_T”,但AddPrefix(“TEST”,“/”)返回“/ T / E / S / T”

 Function AddPrefix(text As String, Optional prefix As Variant) As String If IsMissing(prefix) Then prefix = "_" Dim s As String, i As Long, n As Long n = Len(text) s = "" For i = 1 To n s = s & prefix & Mid(text, i, 1) Next i AddPrefix = s End Function