Board logo

標題: 如何將TextBox和編號分開? [打印本頁]

作者: av8d    時間: 2011-9-5 14:17     標題: 如何將TextBox和編號分開?

本帖最後由 av8d 於 2011-9-8 08:19 編輯

For i = 2 To 7
"TextBox" & i=""
Next i
End Sub

以上做法會發生錯誤
是因為TextBox是物件嗎?

若TextBox2+TextBox3+++++TextBox7又該怎寫?
作者: av8d    時間: 2011-9-7 12:57     標題: 請問為什麼型態會不符合?(感謝GBKEE 大大解決了我的疑問)

本帖最後由 av8d 於 2011-9-7 23:50 編輯

[attach]7752[/attach]

請問為什麼型態會不符合?有沒有比較快點的作法?(例如:用迴圈)
作者: GBKEE    時間: 2011-9-7 14:10

回復 1# av8d
  1. BTO = Val(TextBox1)
  2. Bon = Val(TextBox2)
  3. Bte = Val(TextBox3)
  4. Bfy = Val(TextBox4)
  5. Boh = Val(TextBox5)
  6. Bfh = Val(TextBox6)
  7. Bot = Val(TextBox7)
  8. Ton = Val(TextBox8)
  9. Tte = Val(TextBox9)
  10. Tfy = Val(TextBox10)
  11. toh = Val(TextBox11)
  12. Tfh = Val(TextBox12)
  13. Tot = Val(TextBox13)

  14. ATO = BTO - (Ton + toh) / 10
  15. MsgBox ATO
複製代碼

作者: GBKEE    時間: 2011-9-7 16:11

回復 1# av8d
  1. For i = 2 To 7
  2.     Controls("TextBox" & i) = ""
  3. Next i
複製代碼

若TextBox2+TextBox3+++++TextBox7又該怎寫?
TextBox2+TextBox3+++++TextBox7->傳回字串
Val(TextBox2)+Val(TextBox3)+++++Val(TextBox7)->傳回數字
作者: av8d    時間: 2011-9-7 23:47

回復 2# GBKEE

Private Sub CommandButton1_Click()
For i = 2 To 4
    Controls("TextBox" & i) = ""
Next i
End Sub

    按下按鈕後出現沒有定義這個Sub或Function
作者: GBKEE    時間: 2011-9-8 07:31

回復 3# av8d
同性資的問題 請別再發一次新帖,浪費論壇資源.
控制項是有分別  1 Form 及 2 工作表
這裡是工作表的控制項, 由工具->控制工具箱 產生的
  1. Private Sub CommandButton1_Click()
  2.     For i = 2 To 4
  3.         工作表1.OLEObjects("TextBox" & i).Object.Value = ""
  4.     Next i
  5. End Sub
複製代碼

作者: av8d    時間: 2011-9-8 08:28

G大您好~我可否在詢問一下關於以下的改寫方式
n1 = Val(TextBox1)
n2= Val(TextBox2)
n3= Val(TextBox3)
若改寫成迴圈改怎麼寫?
以下兩個寫法都會出現錯誤.
For i = 1 To 3
    For j = 1 To 3
        "n" & j = 工作表1.OLEObjects("TextBox" & i).Object.Value
    Next j
Next i
-------------------------------------------------------
For i = 1 To 3
    For j = 1 To 3
        "n" & j = Controls("TextBox" & i).Value
    Next j
Next i
作者: GBKEE    時間: 2011-9-8 08:47

回復 7# av8d
  1. Option Explicit
  2. 'n1 = Val(TextBox1)
  3. 'n2 = Val(TextBox2)
  4. 'n3 = Val(TextBox3)
  5. Sub Ex()
  6.     'Dim N(1 To 3)   '也可以
  7.     Dim N()
  8.     i = 3
  9.     ReDim N(1 To 3)
  10.     For i = 1 To 3
  11.         N(i) = 工作表1.OLEObjects("TextBox" & i).Object.Value
  12.     Next
  13. End Sub
複製代碼

作者: av8d    時間: 2011-9-8 12:50

Option Explicit
Private Sub CommandButton2_Click()
    Dim N()
    i = 1
    ReDim N(1 To 3)
    For i = 1 To 3
        N(i) = 工作表1.OLEObjects("TextBox" & i).Object.Value
    Next
ATO = N3 + N2
MsgBox ATO


不知道為什麼 答案都是0


End Sub
作者: GBKEE    時間: 2011-9-8 12:58

回復 9# av8d
N是陣列
ATO = N(3) + N(2)
作者: av8d    時間: 2011-9-8 13:32

回復 10# GBKEE


    大大您好~可是他計算的數值怪怪的~

他不會素質加總

例如N3=3,N2=2,N3+N2=32會變成這樣
作者: GBKEE    時間: 2011-9-8 13:42

回復 11# av8d
Val 將字串轉換為數字
  1. Option Explicit
  2. Private Sub CommandButton2_Click()
  3.     Dim N(), i ,ATO
  4.     ReDim N(1 To 3)
  5.     For i = 1 To 3
  6.         N(i) = Val(工作表1.OLEObjects("TextBox" & i).Object.Value)
  7.         'N(i) = 工作表1.OLEObjects("TextBox" & i).Object.Value
  8.     Next
  9. ATO = N(3) + N(2)
  10. 'ATO = Val(N(3)) + Val(N(2))
  11. MsgBox ATO
  12. End Sub

  13. ''''''''''''''''變數指定為整數  '''''''''''''''''''''''
  14. Private Sub CommandButton2_Click()
  15.     Dim N() As Integer, i As Integer, ATO As Integer
  16.     i = 3
  17.     ReDim N(1 To i)
  18.     For i = 1 To 3
  19.         N(i) = 工作表1.OLEObjects("TextBox" & i).Object.Value
  20.     Next
  21. ATO = N(3) + N(2)
  22. MsgBox ATO
  23. End Sub
複製代碼

作者: av8d    時間: 2011-9-9 08:16

本帖最後由 av8d 於 2011-9-9 09:40 編輯

回復 12# GBKEE


    大大您好~
1.如果要指定多個整數變數是否有更便捷的方式呢? 謝
如果運算後要無條件捨去只取整數~好像還是必須使用int
ATO = INT(N(3) / N(2))
作者: GBKEE    時間: 2011-9-9 09:27

回復 13# av8d
要指定多個整數變數是否有更便捷的方式呢?
Dim N() As Integer, i As  Integer, ATO As  Integer




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)