ITabRange.AutoFill

Синтаксис

AutoFill(DestinationRange: ITabRange; [Type: TabRangeFillType = 0;][Increment: Double = 0]);

Параметры

DestinationRange. Диапазон, в котором необходимо произвести автоматическое заполнение;

Type. Способ заполнения;

Increment. Шаг заполнения.

Описание

Метод AutoFill производит автоматическое заполнение указанного диапазона на основании данных текущего диапазона.

Комментарии

Параметр Increment работает при использовании способа заполнения TabRangeFillType.Values.

Автозаполнение производится путем копирования данных из ячеек текущего диапазона в указанный диапазон. По умолчанию копируются данные (формула, значение и текст) и оформление ячеек. При копировании ячейки чередуются с учетом количества ячеек в исходном диапазоне. Буфер обмена при автозаполнении не используется.

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

Если исходный диапазон содержит объединенные ячейки, то в указанном диапазоне также должны быть объединенные ячейки. Расположение объединенных ячеек в диапазонах должно совпадать. При несовпадении расположения объединенных ячеек в диапазонах и пересечении границ объединения, расположенного вне исходного диапазона, с границами указанного диапазона выдается сообщение об ошибке. В противном случае при несовпадении расположения объединенных ячеек происходит переобъединение.

Для работы с данными через буфер обмена могут использоваться методы ITabRange.Copy, ITabRange.Cut, ITabRange.Paste.

Пример

Для выполнения примера в репозитории предполагается наличие регламентного отчёта с идентификатором REPORT. В отчёте диапазон ячеек А0:А4 заполнен данными.

Добавьте ссылки на системные сборки: Metabase, Report, Tab.

Sub UserProc;
Var
    MB: IMetabase;
    Regrep: IPrxReport;
    Sheet: IPrxSheet;
    Table: IPrxTable;
    Tsheet: ITabSheet;
    SourceRange, DestRange: ITabRange;
Begin
    
// Получаем текущий репозиторий
    MB := MetabaseClass.Active;
    
// Получаем регламентный отчёт
    Regrep := mb.ItemById("REPORT").Edit As IPrxReport;
    
// Получаем таблицу листа регламентного отчёта
    Sheet := Regrep.Activesheet;
    Table := Sheet 
As IPrxTable;
    TSheet := Table.TabSheet;
    
// Определяем диапазоны заполнения
    SourceRange := TSheet.ParseRange("A0:A4");
    DestRange := TSheet.ParseRange(
"A0:A9");
    
// Производим автозаполнение диапазона ячеек (A5:A9)
    SourceRange.AutoFill(DestRange, TabRangeFillType.Values, 2);
    (Regrep 
As IMetabaseObject).Save;
End Sub UserProc;

В результате выполнения примера будет произведено автозаполнение диапазона A5:A9 на основании данных диапазона A0:A4 с шагом 2. При автозаполнении будут скопированы только формулы, значения и текст ячеек.

См. также:

ITabRange