看板 Visual_Basic 關於我們 聯絡資訊
請教各位大大 目前想寫個簡易計算excel數據的程式 有四個textbox textbox 1~3(a、b、c)分別顯示從excel抓取的數據或自行打上數據 textbox 4(d) 則計算textbox 1~3的數據後顯示出來 我的寫法是這樣: 當a出現數據後 d顯示計算結果 Private Sub a_Change() d.Text = Val(a.Text) * Val(b.Text) / Val(c.Text) End Sub 結果出現 執行階段錯誤'6':溢位 我剛學VBA還請版上大大指導 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.124.166.109 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Visual_Basic/M.1620793485.A.69A.html
LPH66: 因為 c 沒有值, Val 之後變成 0 了 05/12 21:07
areric: 感謝大大 終於找到問題了 那除了預先在格子內填入數值外 05/13 09:17
areric: 還有其他方法嗎? 謝謝 05/13 09:17
MOONRAKER: 你有聽過if嗎 05/13 09:51
waiter337: Private Sub a_Change() 05/14 11:10
waiter337: call cal 05/14 11:11
waiter337: end sub 05/14 11:11
waiter337: sub cal() 05/14 11:11
waiter337: if a.Text="" or a.Text = 0 then exit sub 05/14 11:12
waiter337: if b.Text="" or b.Text = 0 then exit sub 05/14 11:12
waiter337: if c.Text="" or c.Text = 0 then exit sub 05/14 11:13
waiter337: d.Text = Val(a.Text) * Val(b.Text) / Val(c.Text) 05/14 11:13
waiter337: end sub 05/14 11:13
waiter337: 另外textbox的IMEmode 要改成8 05/14 11:14
waiter337: 如果想全靠鍵盤操作 05/14 11:15
waiter337: 可以把前三行取消 05/14 11:15
waiter337: 改用 05/14 11:16
waiter337: Private Sub a_KeyDown(ByVal KeyCode As MSFors.Retur 05/14 11:17
waiter337: nInteger, ByVal Shift As Integer) 05/14 11:17
waiter337: If KeyCode = 13 Or KeyCode = 9 Then 05/14 11:17
waiter337: Application.EnableEvents = False 05/14 11:17
waiter337: Call cal 05/14 11:17
waiter337: KeyCode = 0 05/14 11:18
waiter337: b.SetFocus 05/14 11:18
waiter337: Application.EnableEvents = True 05/14 11:18
waiter337: End If 05/14 11:18
waiter337: End Sub\ 05/14 11:18
waiter337: \ 刪掉 不小心按到 05/14 11:19