我希望将方程式自动填充到整行。
我面临的问题是当等式自动填充时,它会在单元格引用周围加上引号。当它返回等式时,单元格读取= 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
答案 0 :(得分:4)
您正在执行FormulaR1C1
,E2
格式为A1
。 R1C1相对于放置公式的单元格,因此在本例中我们要将一列向左移动。 RC[-1]
。或者如评论中所述,更改为基于A1的.Formula
。
请勿使用Select
。有关避免陷阱的更多信息,请参阅此处:How to avoid using Select in Excel VBA macros
无需填写,只需将公式同时分配给所有单元格。 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