我是VBA的新手。关于在 VBA-Excel 上撤消我的数据,我遇到了一些问题。我的数据是“ 3> 8 , 6> 15 , 26> 41 (差异细胞上的每个数据)”我可以逆转“3> ; 8“到”8> 3“通过使用反向功能来满足我的要求。但我不能将“6> 15”和“26> 41”反转为“15> 6”和“41> 26”。失败的将是“51> 6”和“14> 62”,我想成为“15> 6”和“41> 26”。
Reverse = StrReverse(Trim(str))
请帮助我解决我的问题并感谢您的评论。
答案 0 :(得分:1)
首先需要找到“>”的位置在牢房里。你通过获取单元格的内容并将其作为字符串处理并找到“>”
来完成此操作这是在开头arrowPosition的行中完成的。这是“>”位置的整数值你原来的字符串
接下来使用Left将文本提取到“>”以及在“>”之后提取文本的权利
然后建立一个新的权利字符串& “>” 中&安培; leftStr。
注意我从Sheet1 B5输入了我的数据,但只要它是一个格式正确的String就可以使用任何源。
Sub Test()
Dim myString As String
myString = Sheets("Sheet1").Range("B5")
Debug.Print myString
Debug.Print reverseString(myString)
End Sub
Function reverseString(inputString As String) As String
Dim leftStr As String
Dim rightStr As String
Dim arrowPosition As Integer
arrowPosition = InStr(1, inputString, ">")
leftStr = Left(inputString, arrowPosition - 1)
rightStr = Right(inputString, Len(inputString) - arrowPosition)
reverseString = rightStr & ">" & leftStr
End Function
答案 1 :(得分:1)
只是因为你在寻找VBA,你可以将这个功能添加到你的代码中:
Function rev(t As String) As String
s = Split(t, ">", 2)
rev = s(1) & ">" & s(0)
End Function
当然只有你必须反转2号,否则你将循环“s”,但该功能将失去其用处