有没有办法参考单元格在 vba 中是否有小数点?



我想在 VBA 中创建一些代码,这些代码将查看 B 列工作表中的单元格。如果代码找到带有小数的单元格值(而不是整数,例如不是 1,而是 1.1(,则打印单元格值以将其立即显示在另一张纸中。

我知道这将是一个循环,它将使用偏移命中等。我没有在 VBA 中尝试过这段代码,我只是输入它作为我将在问题中做什么的示例。

For each cell in Sheets("Sub Tasks").Range("B1:B" & LastRow)
If cell = '(DECIMAL FORUMLA) Then 

你可以使用这样的东西:

Dim cell As Range
For Each cell In Sheets("Sub Tasks").Range("B1:B" & LastRow)
If IsNumeric(cell.Value) Then
If Val(cell.Value) <> Int(cell.Value) Then
' The number contains decimals.
Dim valueToTheRight As Variant
valueToTheRight = cell.Offset(0, 1).Value
' TODO: Add `valueToTheRight` into the appropriate place of the other sheet.
End If
Else
' The cell value is not a number.
' TODO: either do something about it or remove the `else` branch to ignore it.
End If
Next

您可以评估单元格内容吗?

Sub Demo()
Dim cell
For each cell in Sheets("Sub Tasks").Range("B1:B" & LastRow)
If IsNumeric(c.Value2) And InStr(c.Value2, Application.DecimalSeparator) Then
Debug.Print c.Value2
End If
Next c
End Sub

IsNumeric将测试单元格是否包含数字,即跳过任何带有句号的字符串,Instr(c.value2, Application.DecimalSeparator)将测试小数

最新更新