可以对单元格内的值进行分组的反向函数
Reverser function that can group the value whit in a cell
我一直在搜索和研究我能找到的所有不同帖子,但不能说这个请求或问题之前已经讨论过。
这是基本的反向函数,我想要完成的是(我这样称呼它)一组反向函数。将附上图片以图形方式更好地解释这一点。
目标是使用 =StrReverse($A1)
Function Reversestr(str As String) As String
Reversestr = StrReverse(Trim(str))
End Function
请使用下一个功能:
Function reversePairOfDigits(strText As String) As String
Dim i As Long, strRes As String
For i = 1 To Len(strText) Step 2
strRes = Mid(strText, i, 2) & strRes
Next
reversePairOfDigits = strRes
End Function
可以用下一个简单的方法。 Select 包含要处理的字符串的单元格 和 运行 它:
Sub testReversePairOfDigits()
Debug.Print reversePairOfDigits(ActiveCell.value)
End Sub
您可以在 Immediate Window 中看到结果(Ctrl + G
,在 VBE 中)
如果要处理的字符串在特定范围内,则需要在其单元格之间迭代并调用提供的函数。为了使代码更快,范围应该放在一个数组中,然后对其进行处理,最后删除处理后的结果。如果你明确定义要处理的范围,我可以告诉你如何高效地做。
反转字符串 (UDF)
Option Explicit
Function ReverseString( _
ByVal Word As String, _
Optional ByVal CharCount As Long = 1) _
As String
Dim wLen As Long: wLen = Len(Word)
Dim First As Long: First = wLen Mod CharCount
If First > 0 Then ReverseString = Left(Word, First)
Dim n As Long
For n = First + 1 To wLen Step CharCount
ReverseString = Mid(Word, n, CharCount) & ReverseString
Next n
End Function
我一直在搜索和研究我能找到的所有不同帖子,但不能说这个请求或问题之前已经讨论过。
这是基本的反向函数,我想要完成的是(我这样称呼它)一组反向函数。将附上图片以图形方式更好地解释这一点。
目标是使用 =StrReverse($A1)
Function Reversestr(str As String) As String
Reversestr = StrReverse(Trim(str))
End Function
请使用下一个功能:
Function reversePairOfDigits(strText As String) As String
Dim i As Long, strRes As String
For i = 1 To Len(strText) Step 2
strRes = Mid(strText, i, 2) & strRes
Next
reversePairOfDigits = strRes
End Function
可以用下一个简单的方法。 Select 包含要处理的字符串的单元格 和 运行 它:
Sub testReversePairOfDigits()
Debug.Print reversePairOfDigits(ActiveCell.value)
End Sub
您可以在 Immediate Window 中看到结果(Ctrl + G
,在 VBE 中)
如果要处理的字符串在特定范围内,则需要在其单元格之间迭代并调用提供的函数。为了使代码更快,范围应该放在一个数组中,然后对其进行处理,最后删除处理后的结果。如果你明确定义要处理的范围,我可以告诉你如何高效地做。
反转字符串 (UDF)
Option Explicit
Function ReverseString( _
ByVal Word As String, _
Optional ByVal CharCount As Long = 1) _
As String
Dim wLen As Long: wLen = Len(Word)
Dim First As Long: First = wLen Mod CharCount
If First > 0 Then ReverseString = Left(Word, First)
Dim n As Long
For n = First + 1 To wLen Step CharCount
ReverseString = Mid(Word, n, CharCount) & ReverseString
Next n
End Function