作为输出我有Range("H" & temp).Cells
:
234
0
(Empty)
2
我想将其转换为long
or int
,因为它是一个文本值。所以我做了
Range("H" & temp).Cells = CInt(Range("H" & temp).Cells)
它适用于 234、0 和 2,但是当单元格为空时,它会显示错误。我应该怎么办?我希望空单元格被视为 0,当然使用 VBA 宏。
那个牢房不是真的空的。它有一个空格或其他一些非打印字符。Trim
在使用之前尝试使用CInt
以消除空格。
如果你需要在公式中这样做,你可以使用这个:IF(IFERROR(VALUE(A1)); 0; A1)
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 并将该单元格复制到剪贴板。突出显示您希望用零替换空白的单元格范围。选择编辑 | 从菜单中选择性粘贴。在结果对话框的“操作”部分,选择“乘”选项并单击“确定”。您刚刚将范围内的每个单元格乘以 1。数字单元格不会改变。包含文本数据的单元格将被忽略。但是任何空白的单元格现在都将包含一个零。当然,您可以通过将包含 0 的单元格复制到剪贴板并在“选择性粘贴”对话框中使用“添加”而不是“相乘”来完成相同的操作。
这对我有用,一个自定义函数,您可以根据需要将变体更改为 int 或 double
Function checkEmpty(value As Variant) As Variant
If value = "" Then
checkEmpty = 0
Else
checkEmpty = value
End If
End Function
如何称呼它:
checkEmpty(cells(1,1).value)