在Excel中将string转换为空格或空格

作为Range("H" & temp).Cells输出Range("H" & temp).Cells

 234 0 (Empty) 2 

我想将它转换成longint ,因为它是一个文本值。 所以我做了

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

它适用于234,0和2,但是当单元格为空时,显示错误。 我该怎么办? 我想空单元格被视为0,当然使用VBAmacros。

这个单元格不是真的空的。 它有一个空间或其他非打印字符。 在使用CInt来摆脱空间之前,尝试使用Trim

如果你需要在公式中这样做,你可以使用:IF(IFERROR(VALUE(A1)); 0; A1)

在未使用的单元格中input数字1并将该单元格复制到剪贴板。 突出显示要将空白replace为零的单元格的范围。 select编辑| 从菜单中select粘贴。 在结果对话框的“操作”部分中,select“乘”选项并单击“确定”。您只将范围内的每个单元格乘以1.数值单元格不会更改。 包含文本数据的单元格将被忽略。 但是任何空白的单元现在都会包含一个零。 当然,您可以通过将包含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