更改VBA中的单元格数据types?

我正在写一个应用程序在Excel中,可以帮助您了解完成正方形过程。 如果variables是一个整数,我希望单元格被格式化为数字,如果不是,则格式化为分数。

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”)。 那么为什么不把它作为一个分数格式呢?