无论将NumberFormat设置为常规,公式都显示为文本

好吧,所以我的问题是无论NumberFormat被设置我的公式仍然显示为文本,直到我进入单元格,并回车。 我正在尝试做的是dynamic地创build一个新的列,并用公式填充第5行 – > 500的范围。 我的完整的代码如下,我已经尝试了不同的变化,如设置公式的输出专门的格式,移动.NumberFormat =公式设置后的With块内。

我也尝试过了。 .Calculate范围来尝试重新计算。 这个公式是多么简单并不重要,它仍然不喜欢它。

 Sub AddHaulageRows() If ActiveSheet.Name Like "WK*" Or ActiveSheet.Name = "WTemplate" Then If ActiveSheet.Cells(3, 16).Value <> "Haulage Rate" Then Columns("P:P").Insert Shift:=xlToRight ', CopyOrigin:=xlFormatFromLeftOrAbove ActiveSheet.Cells(3, 16).Value = "Haulage Rate" ActiveSheet.Range("P5:P500").NumberFormat = "General" With ActiveSheet.Range("P5:P500") 'Setting formula to the most simplest thing I can do. .FormulaR1C1 = "=TRUE" End With Else Columns("P:P").Delete Shift:=xlToLeft End If Else MsgBox "Cannot add row as this is not a valid weekly sheet.", vbCritical End If End Sub 

奇怪的是,它在我的工作簿中的一些工作表上,而不是其他人。 在一些表单上,它只是给出了一个1004 Application-defined or object-defined错误。 这些表都符合相同的模板。

首先我会试试这个:

 With ActiveSheet.Range("P5:P500") .NumberFormat = "General" .FormulaR1C1 = "=TRUE" End With 

有时单独的格式会导致覆盖