VBA - 通过带有分隔符的字符串循环

时间:2017-11-27 23:45:38

标签: vba

希望有人可以帮助我。我有以下字符串:

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。我也可以做点,游戏,计数。每次比赛后点数都需要重置,每次比赛后游戏计数都会重置。有什么想法吗?

0 个答案:

没有答案