formular1c1 vba что это

Возвращает или задает формулу для объекта с использованием нотации в стиле R1C1 на языке макроса. Returns or sets the formula for the object, using R1C1-style notation in the language of the macro. Для чтения и записи, Variant. Read/write Variant.

Синтаксис Syntax

выражение.** FormulaR1C1** expression.FormulaR1C1

выражение: переменная, представляющая объект Range. expression A variable that represents a Range object.

Примечания Remarks

Если ячейка содержит константу, это свойство возвращает константу. If the cell contains a constant, this property returns the constant. Если ячейка пуста, свойство возвращает пустую строку. If the cell is empty, the property returns an empty string. Если ячейка содержит формулу, свойство возвращает формулу в виде строки в том же формате, в котором она будет отображаться в строке формул (включая знак равенства). If the cell contains a formula, the property returns the formula as a string, in the same format in which it would be displayed in the formula bar (including the equal sign).

Если присвоить значение или формулу ячейки для даты, Microsoft Excel проверяет, отформатирована ли эта ячейка с помощью одного из форматов даты или времени. If you set the value or formula of a cell to a date, Microsoft Excel checks to see whether that cell is already formatted with one of the date or time number formats. В противном случае числовой формат изменяется на формат короткой даты по умолчанию. If not, the number format is changed to the default short date number format.

Если диапазон состоит из одного или двух измерений, можно установить формулу для массива Visual Basic с теми же размерами. If the range is a one- or two-dimensional range, you can set the formula to a Visual Basic array of the same dimensions. Аналогично, можно поместить формулу в массив Visual Basic. Similarly, you can put the formula into a Visual Basic array.

При установке формулы в диапазоне с несколькими ячейками все ячейки в диапазоне заполняются формулой. Setting the formula of a multiple-cell range fills all cells in the range with the formula.

Пример Example

В этом примере задается формула для ячейки B1 на листе Sheet1. This example sets the formula for cell B1 on Sheet1.

Поддержка и обратная связь Support and feedback

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь. Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

Могу ли я использовать любой другой код вместо «FormulaR1C1» и относительную ссылку «R [-1] C здесь?

2 ответа

Мой вопрос был одним шагом в достижении ожидаемого результата. Следующим шагом было выяснить способ использования абсолютных ссылок в циклах. Тем не менее, абсолютные ссылки, такие как номер в коде: Range («a2») = 123.45 Диапазон («a2»). ФормулаR1C1 = «= ТЕКСТ (R [-1] C,» «#. 00» «)» трудно управлять в циклах, где переменные используются для получения результата. После того, как некоторые R & DI придумали: Sheet1.Cells(2, 1).Formula = «= TEXT ((a1),» «#. 00» «)», который работает. Я по-прежнему найду способ манипулировать формулой R1C1 для соответствия циклам.

Итог: ознакомьтесь с 3 советами по написанию и созданию формул в макросах VBA с помощью этой статьи и видео.

Уровень мастерства: Средний

Скачать файл

Загрузите файл Excel, чтобы сопровождать видео.

3 Tips For Writing Excel Formulas In VBA.xlsm (82.3 KB)

Автоматизировать написание формул

Написание формул может быть одной из самых трудоемких частей вашей еженедельной или ежемесячной задачи Excel. Если вы работаете над автоматизацией этого процесса с помощью макроса, вы можете попросить VBA написать формулу и ввести ее в ячейки.

Поначалу написание формул в VBA может быть немного сложнее, поэтому вот три совета, которые помогут сэкономить время и упростить процесс.

Совет № 1: Свойство Formula

Свойство Formula является членом объекта Range в VBA. Мы можем использовать его для установки / создания формулы для отдельной ячейки или диапазона ячеек.

Есть несколько требований к значению формулы, которые мы устанавливаем с помощью свойства Formula:

  1. Формула представляет собой строку текста, заключенную в кавычки. Значение формулы должно начинаться и заканчиваться кавычками.
  2. Строка формулы должна начинаться со знака равенства = после первой кавычки.

Вот простой пример формулы в макросе.

Свойство Formula также можно использовать для чтения существующей формулы в ячейке.

Совет № 2: Используйте Macro Recorder

Если ваши формулы более сложные или содержат специальные символы, их будет сложнее написать в VBA. К счастью, мы можем использовать рекордер макросов, чтобы создать код для нас.

Вот шаги по созданию кода свойства формулы с помощью средства записи макросов.

  1. Включите средство записи макросов (вкладка «Разработчик»> «Запись макроса»)
  2. Введите формулу или отредактируйте существующую формулу.
  3. Нажмите Enter, чтобы ввести формулу.
  4. Код создается в макросе.

Если ваша формула содержит кавычки или символы амперсанда, макрос записи будет учитывать это. Он создает все подстроки и правильно упаковывает все в кавычки. Вот пример.

Совет № 3: Нотация формулы стиля R1C1

Если вы используете средство записи макросов для формул, вы заметите, что он создает код со свойством FormulaR1C1.

Нотация стиля R1C1 позволяет нам создавать как относительные (A1), абсолютные ($A$1), так и смешанные ($A1, A$1) ссылки в нашем макрокоде.

R1C1 обозначает строки и столбцы.

Относительные ссылки

Для относительных ссылок мы указываем количество строк и столбцов, которые мы хотим сместить от ячейки, в которой находится формула. Количество строк и столбцов указывается в квадратных скобках.

Следующее создаст ссылку на ячейку, которая на 3 строки выше и на 2 строки справа от ячейки, содержащей формулу.

Отрицательные числа идут вверх по строкам и столбцам слева.

Положительные числа идут вниз по строкам и столбцам справа.

Абсолютные ссылки

Мы также можем использовать нотацию R1C1 для абсолютных ссылок. Обычно это выглядит как $A$2.

Для абсолютных ссылок мы НЕ используем квадратные скобки. Следующее создаст прямую ссылку на ячейку $A$2, строка 2, столбец 1

При создании смешанных ссылок относительный номер строки или столбца будет зависеть от того, в какой ячейке находится формула.

Проще всего использовать макро-рекордер, чтобы понять это.

Свойство FormulaR1C1 и свойство формулы

Свойство FormulaR1C1 считывает нотацию R1C1 и создает правильные ссылки в ячейках. Если вы используете обычное свойство Formula с нотацией R1C1, то VBA попытается вставить эти буквы в формулу, что, вероятно, приведет к ошибке формулы.

Поэтому используйте свойство Formula, если ваш код содержит ссылки на ячейки ($ A $ 1), свойство FormulaR1C1, когда вам нужны относительные ссылки, которые применяются к нескольким ячейкам или зависят от того, где введена формула.

Если ваша электронная таблица изменяется в зависимости от условий вне вашего контроля, таких как новые столбцы или строки данных, импортируемые из источника данных, то относительные ссылки и нотация стиля R1C1, вероятно, будут наилучшими.

Я надеюсь, что эти советы помогут. Пожалуйста, оставьте комментарий ниже с вопросами или предложениями.

Оцените статью