2
我是VBA的新手,我試圖創建一個從inputBox接受0到1000之間的數字並將其轉換爲十六進制的宏。它的工作原理,但我努力讓程序接受範圍(0 - 1000)。這是發生了什麼:inputBox Excel VBA整數問題
- 如果我輸入-1它會引發錯誤;
- 如果我輸入-1001,它會拋出一個FFFFFFFC17;
- 如果我輸入超過1000的任何值,它不會拋出一個MsgBox(我不熟悉現在在Excel中導致錯誤)。
我第一次做這樣的:
Sub DecToHex()
Dim inputDec As Integer
Dim outputHex As String
inputDec = InputBox("Decimal?")
If inputDec <= 1000 And inputDec >= 0 Then
outputHex = Application.WorksheetFunction.Dec2Hex(inputDec)
MsgBox ("Hex: " + outputHex)
Else
MsgBox ("Error! Please define decimal. It must be larger than zero and less than 1001")
inputDec = InputBox("Decimal?")
outputHex = Application.WorksheetFunction.Dec2Hex(inputDec)
MsgBox ("Hex: " + outputHex)
End If
End Sub
但後來我想好了輸入框讓我輸入字符串,所以也許我應該接受值的字符串,所以我改變:
Dim inputDec As Integer
'Changed to
Dim inputDec As String
哪個仍然對變量做了很差的控制(例如,它接受-1200和1200)。所以你能指出我做錯了什麼?也許這是我閱讀不好的工作表功能。我知道這是新手的錯誤,但瞭解如何從inputBox控制這些輸入變量對我來說很重要。
這工作作爲一個魅力:)謝謝! –
很高興能有幫助:) –
我會給+1,但我沒有足夠的代表! –