Vba 反转字符串中的单个单词
我得到了一个相当具有挑战性的任务,要“介绍”我们(作为一门数学课)VBA。别问我为什么 几个小时前我问过这个问题,但我没有完全描述作业中的(奇怪的)限制 他们希望我们编写代码,逐字颠倒“VBA是惊人的”这句话。因此,结果必须是:“ABV si gnizama”。现在是挑战的部分只允许使用Len和Mid功能 “VBA是令人惊奇的”这句话后面可能会有一个空格,使它更容易 我在想一个while循环,在这里我可以找到句子中的第一个单词:Vba 反转字符串中的单个单词,vba,Vba,我得到了一个相当具有挑战性的任务,要“介绍”我们(作为一门数学课)VBA。别问我为什么 几个小时前我问过这个问题,但我没有完全描述作业中的(奇怪的)限制 他们希望我们编写代码,逐字颠倒“VBA是惊人的”这句话。因此,结果必须是:“ABV si gnizama”。现在是挑战的部分只允许使用Len和Mid功能 “VBA是令人惊奇的”这句话后面可能会有一个空格,使它更容易 我在想一个while循环,在这里我可以找到句子中的第一个单词: Do While Mid(Sentence, i, 1) <
Do While Mid(Sentence, i, 1) <> " "
i = i+1
Loop
Do While Mid(句子,i,1)”
i=i+1
环
这应该给出第一个空格的位置,从而给出第一个单词的长度(i-1)
然后我可能会使用一个嵌套的for循环来指定Mid(句子,x,1)=Mid(句子,z,1),其中x从1到I-1,z从I-1到1,但我对VBA来说太陌生了,不知道怎么做
我有一个代码,上面写着:“gnizama si ABV”,但这不是它的意思。如果你必须只使用
Len
和Mid
,那么这就可以了
Sub ReverseStringByWord()
Dim i As Long
Dim newstr As String
Dim wordbreak As Long
Dim mystr As String
mystr = "VBA is amazing"
wordbreak = 1
For i = 1 To Len(mystr)
If Mid(mystr, i, 1) = " " Then
wordbreak = i
newstr = newstr & Mid(mystr, i, 1)
Else
If wordbreak > 1 Then
newstr = Mid(newstr, 1, wordbreak) & Mid(mystr, i, 1) & Mid(newstr, wordbreak + 1, Len(newstr))
Else
newstr = Mid(mystr, i, 1) & newstr
End If
End If
Next i
Debug.Print mystr, newstr
End Sub
你能把这个问题完全颠倒过来吗?这并不是一个挑战性的任务。看看你的另一个问题也一样,似乎有一个答案只使用Mid和Len。这不符合你的要求吗?这看起来很容易理解。当我从老师那里得到“答案”时,我会回答我自己的问题。