好的,所以我的问题是无论设置 NumberFormat 是什么,我的公式仍然显示为文本,直到我进入单元格并按 Enter 键。我想要做的是动态创建一个新列并用公式填充第 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
错误。这些工作表都符合相同的模板。