2017-01-31 3 views
1

У меня есть следующая формула в Excel, где я применяю countif с динамическим диапазоном. Когда я применяю эту формулу в макросе, это не дает значение, а одинарная кавычка (') покрывает диапазон.Формула Excel VBA с динамическим диапазоном не работает

Cells(XRow, 3).Formula = "=COUNTIF(" & Range(Cells(6, 5), Cells(YRow - 1, 5)).Address(0, 0) & " ,RC[-1])" 

Это то, что я получаю в клетке

=COUNTIF('E6':'E212',B6) 

Я не знаю, почему апостроф занимают ячейки «E6», Если удалить "вручную из клетки, она работает. Любая помощь приветствуется.

+0

Я собираюсь предположить, что это потому, что вы пытаетесь использовать как A1 эталонного стиля и R1C1 в одной и той же формуле , – Dave

+0

@Dave Спасибо! – Manish

ответ

2

Вы смешиваете стили ссылок xlA1 и xlR1C1:

Используйте это:

Dim Rg As Range 
Set Rg = Cells(XRow, 3) 
Rg.Formula = "=COUNTIF(" & Range(Cells(6, 5), Cells(YRow - 1, 5)).Address(0, 0) & "," & Rg.Offset(0, -1).Address(0, 0) & ")" 
+1

Спасибо, он работает, как вы и предполагали! – Manish