从公式VBA中删除行情

我正在寻找一个方程自动填充整行。

我正面临的问题是当方程自动填充时,引用单元格引用。 当它返回方程时,单元格读取= DATEVALUE(“E2”)。

有关如何从E2中删除“”的提示?

下面是我的等式。

谢谢,

丽贝卡

Sub formula() Dim lastRowF As Long lastRowF = Range("E" & Rows.Count).End(xlUp).Row Range("F2").Select ActiveCell.FormulaR1C1 = "=DATEVALUE(E2)" Range("F2").Select Selection.NumberFormat = "m/d/yyyy" Selection.AutoFill Destination:=Range("F2:F" & lastRowF) 'Range("F2:F248225").Select End Sub 

  1. 你正在做FormulaR1C1E2A1格式。 R1C1相对于公式所在的单元格,所以在这种情况下,我们要将一列移动到左边。 RC[-1] 。 或者如评论中所述,更改为.Formula基础。

  2. 不要使用Select 。 有关避免该陷阱的更多信息,请参阅此处: 如何避免在Excel VBAmacros中使用select

  3. 无需填充,只需将公式分配给所有单元格。 Excel会自动调整行号,因为它们是相对的而不是绝对的。

所以这样做:

 Sub formula() Dim lastRowF As Long With ActiveSheet lastRowF = .Range("E" & .Rows.Count).End(xlUp).Row .Range("F2:F" & lastRowF).FormulaR1C1 = "=DATEVALUE(RC[-1])" .Range("F2:F" & lastRowF).NumberFormat = "m/d/yyyy" End with End Sub 

如果你想使用A1风格:

 Sub formula() Dim lastRowF As Long With ActiveSheet lastRowF = .Range("E" & .Rows.Count).End(xlUp).Row .Range("F2:F" & lastRowF).Formula = "=DATEVALUE(E2)" .Range("F2:F" & lastRowF).NumberFormat = "m/d/yyyy" End with End Sub