2012-12-17 154 views
2

作爲輸出我有Range("H" & temp).Cells在Excel詮釋爲空或空白

234 
0 
    (Empty) 
2 

我想把它轉換成longint,因爲它是一個文本值。所以我沒有

Range("H" & temp).Cells = CInt(Range("H" & temp).Cells) 

它適用於234,0和2完美,但是當單元格爲空時,它顯示我錯誤。我該怎麼辦?我希望空單元格被視爲0,當然使用VBA宏。

+0

'CINT()'空單元格的是0。應工作。你能發佈更多的代碼嗎?也許問題在別的地方。 – CaBieberach

回答

0

在未使用的單元格中輸入數字1並將該單元格複製到剪貼板。突出顯示要將空白替換爲零的單元格範圍。選擇編輯|從菜單中選擇粘貼。在結果對話框的「操作」部分中,選擇「乘法」選項並單擊「確定」。您只將範圍內的每個單元格乘以1.數值單元格不會更改。包含文本數據的單元格將被忽略。但是任何空白的單元現在都會包含一個零。當然,您可以通過將包含0的單元格複製到剪貼板並在「粘貼特殊」對話框中使用「添加」而不是「乘法」來完成相同的操作。

+0

從http://www.pcmag.com/article2/0,2817,1819774,00.asp使用很久以前。 –

+0

但如何在vba excel中做到這一點? –

0
Sub t() 
Dim colNum As Long 
colNum = Range("H1").Column 'please coustomize which column 
For i = 1 To 4 'Please customize the row range 
    Cells(i, colNum).Value = CLng(Cells(i, colNum).Value) 'blank --> 0 
    Cells(i, colNum).NumberFormat = "0.00" 'also changes the numberFormat 
Next i 
End Sub 
1

該單元格不是真的空。它有一個空間或其他非打印字符。在使用CInt擺脫空格之前,請嘗試使用Trim

+1

+ 1您已擊中頭部。我相信用戶得到了'運行時錯誤13(類型不匹配)' –

+0

@SiddharthRout在另一個問題OP帖子我回答了前面。我用OP測試過這個單元格實際上是一個空單元格(不是空格/製表符/ e.t.c。),使用=那個CELL/0會給出一個#div/0!錯誤,如果它包含一個空格它將返回#Value – Larry

+0

@Larry有權利,我試過它與修剪,但結果相同。所以我檢查了列格式,並將其設置爲數字,現在這個工作 –

1

如果需要這樣做在公式中,可以使用這樣的: IF(IFERROR(VALUE(A1)); 0; A1)