iT邦幫忙

0

textbox跟對應的儲存格的值比較

不好意思 我的程式這樣寫 哪裡錯誤
目前我卡在if的條件他都會判斷成true
因為還在自己測試功能 還沒完成

Private Sub CB2_Click()
  For i = lastrow To 2 Step -1
  a = TB1.Text  'textbox
  b = Cells(i, "A")
   If a <> b Then
    nextrow = Cells(Rows.Count, 1).End(xlUp).Row + 1
    Cells(nextrow, "A") = TB1.Text
    Cells(nextrow, "B") = L1.Caption
    Range("A" & i).Activate
    un = msgbox("歡迎新勇者" + TB1.Text + "到來,系統再贈送您4次")
    ActiveCell.Offset(0, 1).Value = L1.Caption + 4
    Exit For
   Else
     L1.Caption = L1.Caption - 1
     Range("A" & i).Activate
     un = msgbox("歡迎勇者" + TB1.Text + "再次挑戰,您還能挑戰" + L1.Caption + "次")
End Sub

附圖
https://ithelp.ithome.com.tw/upload/images/20191024/20114436XD7M2GdAjK.jpg

1 個回答

1
小魚
iT邦大師 1 級 ‧ 2019-10-24 16:47:55

你這樣不大對吧,
不是應該先全部檢查過,
再作判斷嗎?

看更多先前的回應...收起先前的回應...

我不太懂您的意思 且我已經確定寫完了
只是那個a<>b會變成true 是為何
且我以下的寫法就可以

Private Sub TB1_Change()
    Sheets("玩家資料").Activate
    lastrow = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Rows(1).Row - 1
     For i = lastrow To 2 Step -1
      If Cells(i, "A") = TB1.Text Then
        Range("A" & i).Activate
        L1.Caption = Cells(i, "b")
      End If
     Next
End Sub
YoChen iT邦研究生 5 級 ‧ 2019-10-24 17:19:44 檢舉

沒有寫過VBA,不過 a<>b (a不等於b) 這種條件很容易就會是true了吧~XDDD

猜測 a<>b 容易成立
是因為a跟b的型態問題XD
a = 1
b = "1"
一樣是a<>b唷

ccutmis iT邦高手 8 級 ‧ 2019-10-24 17:53:02 檢舉

我比較想問的是為何要用EXCEL VBA寫這個... 把會計室的姊姊嗎?
/images/emoticon/emoticon48.gif

YoChen iT邦研究生 5 級 ‧ 2019-10-24 17:56:14 檢舉

從今天就開始學VBA!!((誤

小魚 iT邦大師 1 級 ‧ 2019-10-24 18:38:32 檢舉

如果還沒解決的話,
可以Mail給我幫你看一下,
henrychang0202@gmail.com
(閒人勿擾, 反正我每天都會刪個幾封廣告)

我已經自己測試並且解決了

  Sheets("玩家資料").Activate
  If L1.Caption = 0 Then
  un = msgbox("您沒投幣,請投幣再按開始遊戲")
  Exit Sub
  End If
  lastrow = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Rows(1).Row + 1
   For i = lastrow To 2 Step -1
      If Cells(i, "A") = TB1.Text Then
        Range("A" & i).Activate
        Exit For
      End If
    Next
  a = TB1.Value
  b = ActiveCell.Text
   If b <> a Then
    nextrow = Cells(Rows.Count, 1).End(xlUp).Row + 1
    Cells(nextrow, "A") = TB1.Text
    Cells(nextrow, "B") = L1.Caption
    Range("A" & i).Activate
    un = msgbox("歡迎新勇者" + TB1.Text + "到來,系統再贈送您4次")
    ActiveCell.Offset(0, 1).Value = L1.Caption + 4
    Else
     L1.Caption = L1.Caption - 1
     Range("A" & i).Activate
     un = msgbox("歡迎勇者" + TB1.Text + "再次挑戰,您還能挑戰" + L1.Caption + "次")
     Cells(i, "B") = L1.Caption
    End If
    Sheets("random").Activate
    randomA = (Rnd * 20 + 1) Mod 2
    Cells(2, "A") = randomA
   If Cells(2, "A") = 0 Then
   un = msgbox("您是奴隸牌獲勝一次系統贈送四次")
   Unload Me
   UF1.Show
   Else
   un = msgbox("您是國王牌獲勝一次系統贈送兩次")
   Unload Me
   UF2.Show
   End If

這樣就可以抓到

小魚 iT邦大師 1 級 ‧ 2019-10-25 12:20:04 檢舉

/images/emoticon/emoticon34.gif

我要發表回答

立即登入回答