Как записать значения сразу в несколько ячеек?
Для записи в несколько (область) ячеек используется объект Range (ExcelRange). Пример, как можно получить объект Range для области ячеек.
Delphi:
oRng: ExcelRange; ... ASheet := (XL.ActiveWorkbook.ActiveSheet as _Worksheet); oRng := ASheet.Range['A1:B5', EmptyParam]; oRng := ASheet.Range['A1', 'B5']; oRng := ASheet.Range[ASheet.Cells.Item[1, 1], ASheet.Cells.Item[5, 2]]; oRng.Formula := 123.45;
// обращение к объекту Rows
oRng := ASheet.Range['3:7', EmptyParam].Rows; oRng := ASheet.Range['A3:A7', EmptyParam].EntireRow;
// обращение к объекту Columns
oRng := ASheet.Range['B:E', EmptyParam].Columns; oRng := ASheet.Range['B1:E1', EmptyParam].EntireColumn;
Заметьте, что при обращении к свойству Range и Cells объекта Range, адресация будет уже работать относительно области, указанной в объекте Range. Например, нижеприведенный код будет указывать не на ячейку "A1", как сразу можно подумать, а на "C2":
ASheet.Range['C2:F20', EmptyParam].Range['A1', EmptyParam];
А вот такой код вернет ячейку с адресом "D3":
ASheet.Range['C2:F20', EmptyParam].Range['B2', EmptyParam];
EntireRow Property
EntireColumn Property
How to: Refer to Worksheet Ranges in Code