replace范围的方法
该范围符合正确的表格。 lastRow
是正确的。 为什么这不工作?
.Range("H3:I" & lastRow - 1).Replace what:="SUM", replacement:="Subtotal", _ lookat:=xlPart, MatchCase:=True
由于您试图用您的replace语句更改实际公式,因此结果将会是一个参数太less的公式,并带有SUBTOTAL
公式。
您可以通过手动尝试来testing。 你也可以用AVERAGE
代替SUM
来testing。 在这种情况下,由于公式参数语法是相同的,所以您的代码将完美地工作。
如果你真的想把一个SUM
变成一个SUBTOTAL
,你必须调整你的Replace
语句中的语法差异,或者find另一种方法去处理它。
考虑这样的事情:
Sub qwertyx() With ActiveSheet lastRow = 10 For Each r In .Range("H3:I" & (lastRow - 1)) r.Formula = Replace(r.Formula, "SUM(", "SUBTOTAL(9,") Next r End With End Sub