Диапазон соответствует указанному листу. lastRow
является правильным. Почему это не работает?Заменить метод для диапазона
.Range("H3:I" & lastRow - 1).Replace what:="SUM", replacement:="Subtotal", _
lookat:=xlPart, MatchCase:=True
Диапазон соответствует указанному листу. lastRow
является правильным. Почему это не работает?Заменить метод для диапазона
.Range("H3:I" & lastRow - 1).Replace what:="SUM", replacement:="Subtotal", _
lookat:=xlPart, MatchCase:=True
Поскольку вы пытаетесь изменить фактические формулы с заменой заявлением, это не будет работать, так как результат будет формулой слишком мало аргументов, с SUBTOTAL
формулы.
Вы можете проверить это, попробовав его вручную. Вы также можете проверить это, заменив SUM
на AVERAGE
. В этом случае ваш код будет работать безупречно, так как синтаксис аргумента формулы идентичен.
Если вы действительно хотите повернуть SUM
в SUBTOTAL
, вам нужно будет отрегулировать разницу в синтаксисе в своем заявлении Replace
или найти другой способ его решения.
О да, две разные формулы. DUH XD – findwindow
Хммм меняется на 'what: =" SUM (", replacement: =" Итого (9, "' все еще не удается. Мне кажется, мне нужно снять флажок 'match whole cell contents ', но HOW Edit: lol stupid. снял этот аргумент. Работает сейчас yaaaay <3 – findwindow
Рассмотрим что-то вроде:
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
Ага, я думаю, вы могли бы также использовать функцию замены вместо метода. – findwindow
@findwindow да, но мой подход требует цикла, который неприятен. –
работает для меня, используя статический/буквального диапазон. – Marc
Ну, мне нужен переменный диапазон XD Итак, мой синтаксис 'range' неверен ... – findwindow
Что вы подразумеваете под« не работает »? – Rory