内容提要
(1)参数1:rng,为一个单元格; (2)参数2:delimiter,分隔符,本案例中的“|”符号,被替换的字符; (3)参数3:strType,需要替换成的字符类型: (1)把第一参数按照分隔符进行分列,存到一个字符串数组arr中; (2)循环数组arr,循环变量为i,如果第三参数为默认值,则通过Chr函数计算出对应 i 的字母:Chr(65 + i) ,如果第三参数不等于1,则给出对应数字i+1, (3)把计算得出的字母或数字序号与arr对应的元素全部连接起来,则为最终的函数结果。 VBA代码,在myModule里,自定义函数myReplace: Function myReplace(rng As Range, delimiter As String, Optional strType As Integer = 1) As String Dim arr() As String Dim strTarget As String Dim result As String Dim i As Integer '//第一参数为一个单元格,如果选择多个单元格则显示错误信息 If rng.CountLarge > 1 Then myReplace = "Err:目标单元格错误" Exit Function End If '//把单元格的值赋值给变量strTarget strTarget = rng.Value '//分列strTarget到数组arr arr = Split(strTarget, delimiter) result = "" '//第三参数默认为1,替换为ABCD.....,输入其他,则替换为数字 For i = LBound(arr) To UBound(arr) If strType = 1 Then result = result & Chr(65 + i) & ":" & Trim(arr(i)) Else result = result & i + 1 & ":" & Trim(arr(i)) End If Next myReplace = resultEnd Function 后记 大写字母(A-Z):65~90 小写字母(a-z):97~122。 |
|