[爆卦]vba判斷是否為整數是什麼?優點缺點精華區懶人包

為什麼這篇vba判斷是否為整數鄉民發文收入到精華區:因為在vba判斷是否為整數這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者u19901006 (U)看板Visual_Basic標題[VBA ] 求救 關於連續加法的程...



老師雖然只要求我們寫出1加到n即可 但我想試試更好的版本

結果就出問題了 請板上先進指點一下迷津:)

這個程式主要是可以指定由A連加到B 另外當輸入值非整數時可以拒絕運作

程式碼不長 如下:

Option Explicit
Sub 連續加法() '為該程式命名
Dim A, B, i, ans As Integer
MsgBox ("這是一個簡單的小程式,只要輸入A、B兩數,
就能自動算出由A連續加到B的答案喔!")
ans = 0
Do While ans = 0
A = InputBox("請輸入A") '要求使用者輸入變數n
If Fix(A) - A = 0 Then
B = InputBox("請輸入B") '要求使用者輸入變數n
If B - Fix(B) = 0 Then
ans = (A + B)*(B-A+1)/2
Else: MsgBox ("要輸入整數才行!請重新輸入!")
End If
Else: MsgBox ("要輸入整數才行!請重新輸入!")
End If
Loop
MsgBox ("由" & A & "加到" & B & "的答案為" & ans) '顯示答案

End Sub




問題在於計算答案的部份 原本的(A+B)*(B-A+1)/2 在最初是可以使用的
可是加了Do Loop、If 之後卻算不出來了
後來發現是(A+B)出了問題 當A=1 B=10
出來的數不是11 而是110

它好像把數字當成字串一樣加在一起 為什麼會這樣?
我想了好久也想不通= = 還請高手指點

P.S:判斷輸入值是否為整數的地方 是否有更好的作法?

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.240.122
MOONRAKER:(1)dim寫錯了,要寫dim a as integer, b as integer 04/09 23:33
MOONRAKER:不然他就當variant處理 04/09 23:34
MOONRAKER:(2)整數判斷使用isnumeric() 04/09 23:35

感謝您~~我這就去試試

另外用variant會對數字運算造成什麼影響嗎?

還有isnumeric()不是只能判斷是否為數值嗎? 它可以用來分整數跟小數嗎?
※ 編輯: u19901006 來自: 140.112.240.122 (04/09 23:41)
MOONRAKER:……那你可以用instr()找看裡面有沒有小數點 04/11 09:21
MOONRAKER:variant對數字運算的影響就是如你碰到的,當字串處理。 04/11 09:21

你可能也想看看

搜尋相關網站