2014-10-29 60 views
1

我正在編程一點點,並輕鬆添加客戶端代碼。但是當我添加一個客戶端時,它給了我這個我無法擺脫的小錯誤。也許這將是一個簡單的解決方案。這裏是我的代碼:Excel VBA文本編號

Private Sub btn_Toevoegen_Click() 
    Dim laatsteKlantNummer As Integer 

Range("B4:B13").End(xlDown).Select 
laatsteKlantNummer = ActiveCell.Value 
ActiveCell.Offset(1, 0).Value = txtKlant 
ActiveCell.Offset(1, 1).Value = txtNaam 
ActiveCell.Offset(1, 2).Value = txtAdres 
ActiveCell.Offset(1, 3).Value = txtWoonplaats 
ActiveCell.Offset(1, 4).Value = txtContact 
Me.Hide 
Range("B4:B13").Sort Key1:=Range("B4:B13"), Order1:=xlAscending 
End Sub 

此代碼工作正常,但發生的事情是,當它把它在Excel工作表中它被作爲文本而不是數量。所以它給了我錯誤:「存儲爲文本的數字」。之後,我可以點擊轉換爲數字。像這樣:(http://i.imgur.com/mfMnGFI.png)但是可以編碼而不是一直點擊它?

+0

什麼行給出錯誤?這是可能的;) – 2014-10-29 14:38:25

+0

如果* txt *值來自窗體或類似的東西,用'CLng(txtAdres)'或'CDbl(txtAdres)'或'CDate(txtAdres)'強制它們的數值。你使用的那個取決於你想要放入單元格的值的類型。 – Jeeped 2014-10-29 14:43:00

+0

@Jeeped謝謝,那是我的問題!你能否將答案放在下面作爲回答,以便我可以關閉它,並給你一個大讚! – 2014-10-29 14:46:32

回答

2

我不知道你會得到什麼線這個錯誤,但例如如果這一個:

ActiveCell.Offset(1, 4).Value = txtContact 

您可以添加這對「轉換」到一個號碼:

ActiveCell.Offset(1, 4).Value = txtContact + 0 
+0

感謝隊友,這也是我的問題的答案! – 2014-10-29 14:48:29

+0

對於你的問題,這是最好的答案,併爲vba運行最快的代碼。 @Jeepeds的回答也是一個正確的方法,但如果你需要將它轉換爲日期,那麼這是明智的,對於一個正常的整數來說,這是一條可行的路。 – 2014-10-29 14:50:10

+0

實際上Jeeped評論是更好的方式,這取決於它是一個整數Clng(txtContact)將轉換爲長,CDbl(Textcontact)將轉換爲雙精度(帶有十進制數字).... – 2014-10-30 21:46:05