反转选定单元格中的某些文本-VBA
我是VBA的新手。我在VBA Excel上反转数据时遇到一些问题。我的数据是“3>8,6>15,26>41(不同单元格上的每个数据)”,我可以使用函数reverse将“3>8”反转为“8>3”,以满足我的要求。但我无法将“6>15”和“26>41”反转为“15>6”和“41>26”。失败将是“51>6”和“14>62”,我想是“15>6”和“41>26” 反向=反向(修剪(str))反转选定单元格中的某些文本-VBA,vba,excel,Vba,Excel,我是VBA的新手。我在VBA Excel上反转数据时遇到一些问题。我的数据是“3>8,6>15,26>41(不同单元格上的每个数据)”,我可以使用函数reverse将“3>8”反转为“8>3”,以满足我的要求。但我无法将“6>15”和“26>41”反转为“15>6”和“41>26”。失败将是“51>6”和“14>62”,我想是“15>6”和“41>26” 反向=反向(修剪(str)) 请帮助我解决问题,并感谢您的评论。您首先需要找到“>”在单元格中的位置。您可以通过获取单元格的内容并将其视为字符
请帮助我解决问题,并感谢您的评论。您首先需要找到“>”在单元格中的位置。您可以通过获取单元格的内容并将其视为字符串并查找“>”来完成此操作 这是在行首箭头位置完成的。这是原始字符串中“>”位置的整数值 接下来使用Left提取“>之前的文本,使用Right提取“>之后的文本 然后构建一个新的rightstr&“>”和leftStr字符串 注:我从Sheet1 B5输入数据,但您可以使用任何源,只要它是正确格式的字符串
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
只需查找VBA,即可将此函数添加到代码中:
Function rev(t As String) As String
s = Split(t, ">", 2)
rev = s(1) & ">" & s(0)
End Function
当然,只有当您必须反转2个数字时,否则您将循环“s”,但该函数将失去它的用处您可以向我们显示您正在使用的代码吗?也可以使用Excel公式来执行
=右(A1,Find(“>”,A1))&“>”&左(A1,Find(“>”,A1)-1)
反转按tin上的说明执行。Excel不理解您认为15是一个数字,它读取1和5,然后将其反转为51。使用上面的@Slai方法。