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