Hi 各位IT大大,目前我是還在研究VBA的小白,因為在大學的時候被一個難題難住了,老師問如何把數字反轉,多年後直到畢業都未曾解決(邏輯有問題),曾經有用字串解,但老師說這並不是他想要的答案,他希望的資料型態是數值,最近又想起來了,就順便做了以下VBA的格式
Sub cls()
Dim a, b, c, d As Long
Dim x, e
If Range("a1").Value > 0 Then
a = Range("A1").Value
d = Range("A1").Value
Do While a >= 1
b = b + 1
a = a \ 10
Loop
'判斷為幾位數
c = b
Do While c >= 1
c = c - 1
x = (d Mod 10) * 10 ^ c
e = e + x
d = d \ 10
Loop
MsgBox (e)
Else
a = Range("A1").Value * -1
d = Range("A1").Value * -1
Do While a >= 1
b = b + 1
a = a \ 10
Loop
'判斷為幾位數
c = b
Do While c >= 1
c = c - 1
x = (d Mod 10) * 10 ^ c
e = e + x
d = d \ 10
Loop
MsgBox ("-" & e)
End If
End Sub
幫你問了 ChatGPT 大神了
Sub ReverseNumber()
Dim n As Long, r As Long
n = Abs(Range("A1").Value)
Do While n > 0
r = r * 10 + n Mod 10
n = n \ 10
Loop
If Range("A1").Value < 0 Then r = -r
MsgBox r
End Sub
這段 Code 和你原來的 Code 非常相似,但對變數的宣告和初始化進行了簡化。同時,我們還使用了Abs函數來處理負數的情況。最後,我們使用了MsgBox函數來顯示反轉後的數字,而不是使用一個額外的變數來存儲結果。