Почему Cells (x, y). Значение возвращается пустым для непустых ячеек в Excel VBA? - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть функция Excel VBA.В цикле я использую Cells(x,y).Value для возврата значения определенных ячеек.Но иногда это возвращает пустое значение, даже если ячейка не пуста.

Один из примеров на моем листе - Cells(11,4).Value.Поэтому я поместил в часы Cells(11,4) и Cells(11,4).Value.

В часах, при детализации в Cells(11,4) показывается Текст , равный 42,71%, и Значение2 должно быть "0,42708218178176", что я и ожидал.

Но и в часах Cells(11,4).Value по-прежнему показывает "Пусто".

Добавление к тайне, если я удаляю другуюсмотрите, тогда Cells(11,4).Value внезапно теперь будет заполнено!

enter image description here

Очевидные вопросы:

  • Почему?
  • Что я могу сделать, чтобы остановить Cells(11,4).Value возврат пустого?

Отредактировано, чтобы добавить: VBA является длинным и неактуальным (то есть, если я убираю его обратно водна строка, я получаю тот же результат).

Более актуальна формула, содержащаяся в ячейке D11 (ячейка, в которой я заинтересован).Вот что: = (((D8+D9)/D5)^(1/(DATEDIF(D3,IF(D6>0,D6,LOOKUP(2,1/(D18:D9998<>""),$B18:$B9998)),"d")/365.25))-1)

Эта функция IF возвращает два возможных значения: D6 или LOOKUP(2,1/(D18:D9998<>""),$B18:$B9998).(Последнее предназначено для получения значения из столбца B для последнего значения в столбце D.)

Если я поместил значение в D6 (поэтому оператор IF не выполняет LOOKUP)тогда Cells.Value возвращает правильный результат.Если в D6 нет значения, а оператор IF возвращает формулу LOOKUP, то Cells.Value вернет Empty.

1 Ответ

0 голосов
/ 26 сентября 2018

Я ответил на мой второй вопрос: «Как мне остановить ячейки (11,4). Значение возвращается пустым?».

Если я изменю

LOOKUP(2,1/(D18:D9998<>""),$B18:$B9998)

до

LOOKUP(2,1/(D18:D999<>""),$B18:$B999)

Тогда проблема исчезнет.(Между прочим, в строках 1000-10000 нет данных. Я просто добавил очень большое число, чтобы быть уверенным, что формула будет работать в будущем.)

Я еще не ответил на мой первый вопрос: "Зачем?".Ошибка?Ограничение?Что-то еще?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...