2

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

234
0
   (Empty)
2

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

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

它适用于 234、0 和 2,但是当单元格为空时,它会显示错误。我应该怎么办?我希望空单元格被视为 0,当然使用 VBA 宏。

4

5 回答 5

2

那个牢房不是真的空的。它有一个空格或其他一些非打印字符。Trim在使用之前尝试使用CInt以消除空格。

于 2012-12-17T16:21:10.233 回答
1

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

于 2013-08-19T08:36:44.027 回答
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
于 2012-12-17T12:59:56.780 回答
0

在未使用的单元格中输入数字 1 并将该单元格复制到剪贴板。突出显示您希望用零替换空白的单元格范围。选择编辑 | 从菜单中选择性粘贴。在结果对话框的“操作”部分,选择“乘”选项并单击“确定”。您刚刚将范围内的每个单元格乘以 1。数字单元格不会改变。包含文本数据的单元格将被忽略。但是任何空白的单元格现在都将包含一个零。当然,您可以通过将包含 0 的单元格复制到剪贴板并在“选择性粘贴”对话框中使用“添加”而不是“相乘”来完成相同的操作。

于 2012-12-17T12:14:06.727 回答
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)
于 2021-06-08T23:23:32.947 回答