у листі, а потім у клітинку, яка в такому випадку
була б В2, вводиться значення 5. Іншими словами, отримана посилання є відносною для верхнього лівого кута об'єкта Range. Отже, наступний оператор вводить значення 5 в клітинку, розташовану справа внизу від активної комірки:
ActiveCell.Range ("B2") = 5
Існує також набагато більш зрозумілий спосіб звернутися до осередку по відношенню до діапазону-це властивість O ffset (див. далі).
В
Властивість Cells
Іншим способом послатися на діапазон є використання властивості Cells. Як і Range, можна використовувати властивість Cells в об'єктах Worksheet і Range. Довідкова система вказує на три варіанти синтаксису властивості C ells:
об'єкт . Cells (номер_строкі, номер_столбпа);
об'єкт. Cells (номер_строкі);
об'єкт . Cells. p> Проілюструємо на прикладах особливості застосування властивості Cells. Спочатку в осередок Al аркуша Лист1 введемо значення 9. У даному випадку використовується перший синтаксис, де аргументами є номер рядка (від 1 до 65536) і номер шпальти (від 1 до 256):
Worksheets ("Лист1"). Cells (1, 1) = 9
Нижче наведено приклад, в якому значення 7 вводиться в комірку D3 (тобто перетин
рядка 3, стовпця 4) активного робочого листа:
ActiveSheet.Cells (3, 4) = 7
Можна також використовувати властивість Cells об'єкта Range . При цьому об'єкт Range, який повертається властивістю Cells, задається щодо лівій верхній осередки діапазону Range, на який ми посилаємося. . Наступна інструкція вводить значення 5 в активну клітинку. Пам'ятайте, що в даному випадку активна клітинка розглядається як осередок Al на робочому листі:
ActiveCell.Cells (1,1) = 5
Це зручно, коли мова піде про змінних і циклах. У більшості
випадків у аргументах не використовуватиметься фактичне значення. Замість нього використовується змінна. p> Щоб ввести значення 5 в клітинку, яка знаходиться під активною, можна зверніться до такої інструкції:
ActiveCell.Cells (2, 1) = 5
Попередній приклад можна описати так - необхідно почати з активного осередку, розглядаючи її як клітинку Al. Потім звернутися до осередку у другому рядку і першому стовпці. p> Цей синтаксис можна використовувати і з об'єктом Range. У такому випадку буде отримана осередок по відношенню до вказаного об'єкту Range. Наприклад, якщо об'єкт Range - це діапазон Al: D10 (40 осередків), то властивість Cells може мати аргумент від I до 40 і повертати одну з комірок об'єкта Range. У наступному прикладі значення 2000 вводиться в комірку А2, так як А2 є п'ятою осередком (рахуючи зверху направо, потім вниз) у вказаному діапазоні:
Range ("Al: D10"). Cells (5) = 2000
У попередньому прикладі аргумент властивості Cells не обмежений значеннями між 1 і 40. Якщо аргумент перевищує кількість осередків в діапазоні, рахунок продовжується, ніби діапазон більше, ніж він є насправді, Отже, оператор, подібний попереднього, може змінити значення клітинки, яка знаходиться за межами зазначеного діапазону A l: D10.
Третій синтаксис властивості Cells повертає всі комірки на зазначеному робочому листі.
На відміну від двох інших, у цьому синтаксисі, одержувані в результаті дані - не одна клітинка, а цілий діапазон. У наведеному нижче прикладі використано метод ClearContents по відношенню до діапазону, отриманому за допомогою властивості Cells для активного робочого листа. У результаті буде видалено вміст кожної клітинки на робочому аркуші:
ActiveSheet.Cells.ClearContents
Властивість Offset
Властивість Offset (Подібно властивостям Range і Cells) також повертає об'єкт Range. p> На відміну від розглянутих вище властивостей, Offset застосовується тільки до об'єкта Range і ні до якого іншого. Дана властивість використовує єдиний синтаксис:
об'єкт . Offset (сдвіг_строкі, сдвіг_столбца)
Два аргументи властивості Offset відповідають змішання щодо верхньої лівої клітинки вказаного діапазону Range. Ці аргументи можуть бути позитивними (зрушення вниз або вправо), негативними (вгору або вліво) або нульовими. У наведеному нижче прикладі значення 12 вводиться в комірку, яка знаходиться під активною клітинкою:
ActiveCell.Offset (l, 0). Value = 12
У наступному прикладі значення 15 вводиться в комірку над активною клітинкою:
ActiveCell.Offset (-l, 0). Value = 15
Якщо активна осередок знаходиться в рядку 1, то властивість Ofset в попередньому прикладі видає помилку, тому що воно не повертає неіснуючий об'єкт Range.
Властивість Offset особливо ефективно при використанні змінних в циклі.
У процесі запису макросу у відносному реж...