希望有人可以帮助我。我有以下字符串:
RSSRRSSRRR; RSRRSSRSRSRSSRSS; RSRSSS; SRRRSSRR; SSSRS; SRSSRRSRRSSS; SRSSRS; SRSSS; RSSRSRSS; RSRSSRSRRSSS; RSSSS; SRSSS; S / RR / SR / SS / RS / RR.SSSRRS; RSSSS; SRSSS; SSSS; RSSRSRSS; SSRSS ; SSRRSRSRSS; SRRSRSSS; RSSSRRSS; SSSS; SSSRS; SRSSS; R / SR / SS / RR / RR / SR / RR / S
这是来自网球比赛的数据。 ' S'表示服务器赢得的一个点,' R'代表接收者赢得的一个点,&#39 ;;'代表游戏的结束和'。代表集合的结尾。第一个游戏中的服务器将是玩家1,第二个游戏中的服务器将是玩家2.这将在每个游戏之后在整个比赛中交换。如果在第13局比赛中出现平局,那么' /'将代表何时将发球转交给其他球员。
我希望将数据转换为以下格式:
设置,游戏,点,PlayerPointID,P1net,P2net,结果
1,1,1,player2,-1,+ 1
1,1,2,player1,0,0
1,1,3,player1,+ 1,-1
...
1,1,10,player2,-2,+ 2,Player2
到目前为止,我已经编写了以下代码:
Sub LoopThroughString()
Dim Counter As Integer
Dim MyString As String
MyString = Cells(2, 9)
For Counter = 1 To Len(MyString)
If Mid(MyString, Counter, 1) = "S" Then
Cells(Counter + 1, 16) = Cells(Counter, 16) + 1
ElseIf Mid(MyString, Counter, 1) = "R" Then
Cells(Counter + 1, 16) = Cells(Counter, 16) - 1
End If
Cells(Counter + 1, 17) = -Cells(Counter + 1, 16)
Next
End Sub
这基本上只是循环字符串并计算净值。我不确定如何处理分隔符,如何在每场比赛后交换玩家1和玩家2。我也可以做点,游戏,计数。每次比赛后点数都需要重置,每次比赛后游戏计数都会重置。有什么想法吗?