Ошибка времени выполнения по активной формуле в коде макроса Excel - PullRequest
0 голосов
/ 01 июля 2018

Я хочу использовать значение ячейки A5 Листа 2 для моей активной формулы в макросе на Листе 1. Однако я получаю

Ошибка 1004 (ошибка приложения или объекта).

Если используется статическое значение, например 100, вместо 'Sheet 2'!A5, оно работает.

Ниже мой код:

ActiveCell.FormulaR1C1 = "=if('Sheet 2'!RC>'Sheet 2'!A5,""PASS"", ""FAIL"")"

1 Ответ

0 голосов
/ 01 июля 2018

Нельзя смешивать и сопоставлять ссылки на ячейки xlA1 с ссылками на ячейки xlR1C1. A5 - это R5C1 в синтаксисе xlR1C1.

ActiveCell.FormulaR1C1 = "=if('Sheet 2'!RC>'Sheet 2'!R5C1,""PASS"", ""FAIL"")"

Теперь в этой формуле RC представляет собой относительную ссылку на строку / относительный столбец для той же ячейки на «Листе 2», что и активная ячейка на активном листе. Тем не менее, ссылка «Лист 2»! R5C1 будет представлять собой абсолютную строку / абсолютный столбец, например «Лист 2»! $ A $ 5.

Если вам требуется относительная ссылка на строку / относительный столбец для «Листа 2»! A5, тогда вам нужно использовать .Formula вместо .FormulaR1C1 и ссылаться на адрес активной ячейки способом xlA1.

with ActiveCell
    .Formula = "=if('Sheet 2'!" & .address(0, 0) & ">'Sheet 2'!A5,""PASS"", ""FAIL"")"
end with
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...