Excel 在VBA中更改单元格数据类型?

Excel 在VBA中更改单元格数据类型?,excel,vba,math,Excel,Vba,Math,我正在用excel编写一个应用程序,帮助您学习如何完成正方形过程。如果变量是整数,我希望将单元格格式化为数字;如果不是整数,则将单元格格式化为分数 If h = (Int(h)) Then Range("D1").Select Selection.NumberFormat = "Number" Else Range("D1").Select Selection.NumberFormat = "?/?" End If 由于某种原因,此代码不起作用,导致以下错误: 无法设置Range类的Numbe

我正在用excel编写一个应用程序,帮助您学习如何完成正方形过程。如果变量是整数,我希望将单元格格式化为数字;如果不是整数,则将单元格格式化为分数

If h = (Int(h)) Then
Range("D1").Select
Selection.NumberFormat = "Number"
Else
Range("D1").Select
Selection.NumberFormat = "?/?"
End If
由于某种原因,此代码不起作用,导致以下错误:

无法设置Range类的NumberFormat属性

还有其他方法可以做到这一点吗?

试试:

If h = (Int(h)) Then
Range("D1").Select
Selection.NumberFormat = "0"
Else
Range("D1").Select
Selection.NumberFormat = "# ?/?"
End If

但是,如果将整数格式化为分数,它仍将显示为整数(即分数仍为“1”的“1”)。那么,为什么不将其格式化为分数呢?

id放弃选择并使用范围(“D1”)。例如,numberformat=“0”