2016-05-25 5 views
0

Не могли бы вы посоветовать, как преобразовать формулу в VBA кодПреобразовать Excel Формула для VBA кода

=SUMPRODUCT(SUBTOTAL(3,OFFSET((AT2:AT644),ROW(AT2:AT644)-MIN(ROW(AT2:AT644)), ,1)) * (AT2:AT644="6")) 

я сделать так, но вопрос, как использовать «смещение» в текущем коде?

Application.WorksheetFunction.SumProduct(Application.WorksheetFunction.Subtotal(3, Application.Range.Offset(("AT2:AT644"), Application.Rows("AT2:AT644") - Application.WorksheetFunction.Min(Application.Rows("AT2:AT644")), , 1)) * ("AT2:AT644" = "6")) 

Спасибо,
С уважением,
Приманка

+0

Спасибо Тиму, отлично работает – Lure

ответ

1

Перенесенные от комментариев ...

Debug.Print Sheet1.Evaluate("SUMPRODUCT(SUBTOTAL(3,OFFSET((AT2:AT644),ROW(AT2:AT644)-MIN(ROW‌​(AT2:AT644)), ,1)) * (AT2:AT644=""6""))") 

или в зависимости от того листа вам нужно использовать, только не используйте Application.Evaluate, если вы не хотите он всегда должен оцениваться в контексте ActiveSheet.

Смежные вопросы