2016-04-22 11 views
0

在這裏,我想讀一個Textbox.Value這是一個StringVariable(即text_bval)和轉換是StringLong使用CLng功能爲我的計算。 CLng函數顯示類型不匹配的運行時錯誤。如何將字符串的Userform文本框值轉換爲Excel VBA中的長整型值?

見下面我的代碼:

Dim text_bval As String 
Dim text_long As Long 
Dim per As Integer 
text_bval = text_box.value 
user_entry = CLng(text_bval) 
+0

請同時顯示示例數據。類型不匹配表示您可能會在變量中收到意外(或無意)的數據。 – Vegard

回答

2

按照MS Documentation,「如果expression可接受的範圍爲龍子類型外,發生錯誤。」

在這種情況下,您的表達式是text_bval,一個字符串。如果您的字符串包含無法轉換爲數字的字符,則會發生錯誤。

例如:

text_bval = "2"然後CLng(text_bval) = 2

text_bval = "2.3"然後CLng(text_bval) = 2

text_bval = "hello"然後CLng(text_bval) = ERROR

爲了防止發生的歷史錯誤,你應該做的事情如下所示:

user_entry = 0 
On Error Resume Next 
user_entry = CLng(text_bval) 
On Error GoTo 0 
+0

我覺得有一個'退出函數'或類似的東西丟失。因爲如果成功,它仍然會執行「On Error GoTo 0」。我對嗎?請糾正我,如果沒有。 – flohdieter

+1

'On Error GoTo 0'是錯誤捕獲的正常狀態。您不希望再次停留在「On Error Resume Next」狀態。 – OldUgly

+0

啊好吧謝謝! – flohdieter

相關問題