2016-09-21 4 views
0

У меня возникли проблемы с использованием относительной ссылки (смещение) в функции СЧЕТЕСЛИ в Excel VBA:Используя относительную ссылку (смещение) в функции СЧЕТЕСЛИ в Excel VBA

buildRef.Offset(i, 2) = WorksheetFunction.CountIfs _ 
      (range, ">=" & buildRef.Offset(i, 1)) 

Это всегда приводит к 0, но Я знаю, что это не правильный ответ. Однако

WorksheetFunction.CountIfs (range, buildRef.Offset(i, 1)) действительно дает правильный ответ.

Может ли кто-нибудь сказать мне, почему функция COUNTIFS не работает, если критерии «больше чем» относительная ссылка?

+0

попытайтесь заменить 'buildRef.Offset (я, 1)' 'с buildRef.Offset (я, 1)). Value' –

+0

какие диапазоны адресов из' 'buildRef' и диапазон '? – Slai

+0

Добавление значения еще не дает мне правильного ответа. –

ответ

1

В коде нет ничего плохого. Вы получаете 0 из-за своего i. .Offset(i, 1) может не ссылаться на ячейку, на которую вы ссылаетесь. Я бы рекомендовал пройти через код, чтобы проверить значение i.

Вот пример, чтобы показать, что он работает. Я твердо кодировал значение i, чтобы продемонстрировать, как это работает.

Sub Sample() 
    Dim rng As Range, buildRef As Range 

    Set rng = [A1:A10] 
    Set buildRef = [D1] 

    buildRef.Offset(1, 2) = WorksheetFunction.CountIfs(rng, ">=" & buildRef.Offset(1, 1)) 
End Sub 

enter image description here

+0

Я проверил значения смещения (i, 1). Они верны. –

+0

Я просто показал вам, что это работает. Могу я увидеть ваш файл Excel? Если да, то загрузите его на бесплатный сайт для обмена файлами и поделитесь ссылкой здесь. Также, если файл и конфиденциальная дата затем заменяют его фиктивными данными –

+0

Извините, но я не могу разделить рабочие файлы. –