EXCUSE ME

Sub string_fucntion()

Dim test_str As String

test_str1 = Application.InputBox(prompt:="please input first string", Title:="ask for input string")

test_str2 = Application.InputBox(prompt:="please input second string", Title:="ask for input string")

Cells(2, 3) = "您輪入的第一個字串"

Cells(3, 3) = "您輸入的第二個字串"

Cells(2, 4) = test_str1

Cells(3, 4) = test_str2

locate = 5

locate = locate + 1

If Len(test_str1) > Len(test_str2) Then

Cells(locate, 3) = test_str1

Cells(locate, 4) = "大於"

Cells(locate, 5) = test_str2

ElseIf Len(test_str1) < Len(test_str2) Then

Cells(locate, 3) = test_str1

Cells(locate, 4) = "小於"

Cells(locate, 5) = test_str2

ElseIf Len(test_str1) = Len(test_str2) Then

Cells(locate, 3) = test_str1

Cells(locate, 4) = "等於"

Cells(locate, 5) = test_str2

End If

test_str3 = Application.InputBox(prompt:="please input Y or y,N or n", Title:="do you want to play again")

End Sub

請問如何讓他能繼續再玩一次??

Update:

那個~~我們老師說~~用do loop做~~

因為你寫的我們還沒教過~~

不知道你能不能用do loop教我呢??

謝謝你>"<

Update 2:

你是用do loop

但是~~什麼是msgbox vbokcancel等等= =

Update 3:

integer又是什麼呢??

不好意思喔~~

問題很多~~

>"<

Update 4:

應該說~~老師要我們最後用title為再玩一次

輸入Y或N來做這個作業~~

Update 5:

謝謝你喔^^

1 Answer

Rating
  • 1 decade ago
    Favorite Answer

    Sub string_fucntion()

    Dim test_str1 As String, test_str2 As String

    Dim ans As Integer

    locate = 5

    Do

    test_str1 = Application.InputBox(prompt:="please input first string", Title:="ask for input string")

    test_str2 = Application.InputBox(prompt:="please input second string", Title:="ask for input string")

    Cells(2, 3) = "您輪入的第一個字串"

    Cells(3, 3) = "您輸入的第二個字串"

    Cells(2, 4) = test_str1

    Cells(3, 4) = test_str2

    locate = locate + 1

    Cells(locate, 3) = test_str1

    Cells(locate, 5) = test_str2

    If test_str1 > test_str2 Then

    Cells(locate, 4) = "大於"

    ElseIf test_str1 < test_str2 Then

    Cells(locate, 4) = "小於"

    Else

    Cells(locate, 4) = "等於"

    End If

    ans = MsgBox("是否繼續?「確定」= 繼續 「取消」= 結束", vbOKCancel)

    Loop Until ans = vbCancel

    End Sub

    2007-05-31 20:06:25 補充:

    我把你的程式改成比較字串大小了,

    若你是要比較「字串長度」大小,請修正相關敘述如下:

    If Len(test_str1) > Len(test_str2) Then

    Cells(locate, 4) = "大於"

    ElseIf Len(test_str1) < Len(test_str2) Then

    Cells(locate, 4) = "小於"

    Else

    Cells(locate, 4) = "等於"

    2007-06-01 01:59:42 補充:

    把我回答的倒數2、3行黃底顯示的部份改用底下的 2行 取代,即可照你的意思了。(按Y繼續,其他鍵結束)

    test_str3 = Application.InputBox(prompt:="please input Y or y,N or n", Title:="do you want to play again")

    Loop While test_str3="Y" Or test_str3="y"

    2007-06-01 02:06:21 補充:

    若要改成「按 N 結束,其他鍵繼續」,把LOOP那行用底下的取代。

    Loop Until test_str3="N" Or test_str3="n"

    請你自行體會兩者之間的差異。

    至於Dim ans Integer,這是宣告ans 變數的型別是整數。由於改用你的意思修改後,ans變數已不用,所以這行DIM的可刪除。

    2007-06-01 02:11:31 補充:

    現在多用了test_str3變數,是用來存字串的,所以請你在原來Dim ans As Integer的地方,把它刪除後,添加這一行:

    Dim test_str3 As String

    宣告test_str3變數的型別為字串。

    2007-06-01 02:17:19 補充:

    再看你程式中又用到 locate變數,用來存整數,所以你可接著再加一行:

    Dim locate As Integer

    宣告 locate 變數的型別為整數。

    凡是程式中有用到的變數,最好在使用它之前(通常在程式開頭)一一宣告其型別。這是程式設計者首先要培養的好習慣。

    2007-06-01 09:31:06 補充:

    (通常在程式開頭)改成(通常在程序開頭)比較貼切,當然其意義也不一樣。

    在程式開頭宣告的是模組層次的變數,而在程序裡宣告的是區域變數。

Still have questions? Get your answers by asking now.