Зараз обговорюють

"Тобто є ряд завдань, які взагалі без рекурсії не наважуються."  - це як розуміти? Перефразуй, будь ласка. 

виправив, йшлося про те що деякі завдання можна вирішити лише при використанні рекурсії

Спасибі дуже корисна стаття

А ще щось планується подібного найближчим часом?


Дякую за підтримку, радий що Вам сподобалось!

Так маю вже майже дороблений проект по управлінні Audio файлом, на заміну стандартним клавішам управління HTML5, але ще не встиг відтестувати програвання файлів з інтернету, поки лише локально працює

Надіюсь найближчим часом дороблю й закину

Рахунки

webmoneyeur - E385818210641
usd - Z304643423050
uah - U354026817492
rub - R301704373231easypay80002677bitcoin1F5HRGroUtEQW9HBNbeew8iKh5KQ8vJxzw

Зворотній зв'язок

Для покращення роботи сайту надсилайте свої зауваження:
mailЗауваження
mailПропозиція

Статистика

UkrNET - поисково-информационный ресурс

VBA : Об'єкт Excel. Application та його властивості (Sheets, Range, Cells та ін.)

Об'єкт Application

Об'єкт Application в Microsoft Excel являє весь додаток Excel і знаходиться на самому верхньому рівні об'єктної моделі Excel. Якщо вам буде потрібно викликати Excel з іншої програми, вам буде потрібно створити об'єкт Excel.Application (не забудьте при цьому за допомогою меню Tools -> References додати посилання на бібліотеку Microsoft Excel 11.0 Object Library для використання екселівських команд). Створення цього об'єкта може виглядати так:

Dim newExcel As New Excel.Application
	newExcel.Workbooks.Add
	newExcel.Visible = True

Якщо ви працюєте з уже запущеного Excel, створювати об'єкт Application вам не буде потрібно. Він буде доступний завжди. Якщо ви звертаєтеся до якого-небудь властивості без вказівки вищого об'єкта, то редактор Visual Basic в Excel буде вважати, що ви звертаєтеся до властивості об'єкта Application. Тому ці два рядки коду в Excel рівнозначні:

Application.Workbooks.Add
і
Workbooks.Add

Найчастіше використовувані властивості

ThisWorkbook

дозволяє звертатися до поточної книги, не обтяжуючи себе створенням об'єктних змінних. Цей об'єкт створювати не потрібно - він і так спочатку існує у чинному Excel.


Active

повертає відповідно активний клітинку (ту, на яку вказує курсор введення даних), активну діаграму, активний лист, активну книгу, активне вікно. Всі ці властивості доступні тільки для читання. Власне кажучи, використовувати їх для створення об'єктів зовсім не обов'язково - об'єкти ActiveCell, ActiveSheet і т.п. створюються автоматично під час роботи програми і доступні завжди.

Set MySteet = ActiveSheet
MsgBox MySteet.Name

даний код присвоює значення активного Аркуша змінній "MySteet" та виводить на екран його назву

x = ActiveCell
MsgBox x

даний код присвоює значення активної клітинки змінній "x" та виводить його на екран

Якщо Вам потрібно вибрати об'єкт але він зараз не активний, то для того щоб його активувати достатьо скористатись властивістю Activate, тобто:

ThisWorkbook.Sheets(1).Range("A1").Activate
x = ActiveCell
MsgBox x

спочатку ми активуємо потрібну клітинку, а потім присвоюємо її значення змінній "x" та виводимо його на екран


Sheets

ця властивість повертає колекцію Sheets - набір аркушів книги (якщо викликається для додатка, то для активної книги) і усіх елементів, які знаходяться на окремих аркушах. Якщо використовується властивість Worksheets, то повернеться та ж колекція Sheets, але вже складається тільки з об'єктів Worksheet - звичайних листів (без діаграм).

За доступитись Sheets до Аркуша можна доступитись двома способами:

1. По назві Аркуша

ThisWorkbook.Sheets("Sheet1")

2. По порядковому індексу Аркуша

ThisWorkbook.Sheets(1)

в даному випадку буде завжди обиратись перший Аркуш в робочій книзі не залежно від його назви.

Увага: для уникнення помилок в роботі програми рекомендовано використовувати 1-й спосіб запису, тому що якщо Ви поміняєте послідовність аркушів у 1-му способі не потрібно буде вносити коригувань, а от в 2-му потрібно буде змінити усі індекси Аркушів згідно нового порядку.


Range

дуже важлива властивість. Повертає об'єкт Range, який являє собою діапазон комірок і використовується в Excel практично для будь-яких операцій з осередками.

Application.Range("A3") = 2

даний код вставляє цифру 2 в клітинку А3 на активному робочому аркуші в активній книзі


Cells

одне з найважливіших властивостей об'єкта Application. Воно повертає об'єкт Range, що представляє всі клітинки в активному аркуші активної книги. Оскільки властивість за замовчуванням для об'єкта Range - це властивість Item, то звернення до клітинок активного листа може виглядати так:

Application.Cells(1,2).Font.Bold = True

В даному випадку ми виділили жирним клітинку на перетині першого рядка та другого стовпця.

Дуже схоже діють властивості Columns і Rows. Наприклад, щоб виконати подібну операцію з цілим стовпчиком (другим), можна використовувати команду виду

Application.Columns(2).Font.Bold = True

а для рядка (другий) можна скористатися дуже схожою командою

Application.Rows(2).Font.Bold = True

Ще раз відзначимо, що властивості Cells, Columns і Rows повертають зовсім не набори об'єктів Cell, Column і Row, як вважають багато користувачів, а набори об'єктів Range. На використанні об'єкта Range побудована в Excel майже вся робота з клітинками і їх значеннями.


Selection

Як нескладно здогадатися, це властивість повертає те, що в даний момент вибрав користувач. Якщо він вибрав звичайні клітинки в таблиці, то повернеться об'єкт Range. Якщо ж користувач вибрав щось на діаграмі, то може повернутися об'єкт осей, легенди і т.п. - В залежності від того, що було вибрано.

Sub example01()
	ThisWorkbook.Sheets(1).Range("A1:A10").Select
	Selection = 0
End Sub

даний код присвоює всьому виділеному діапазону значення 0

Примітка: слід пам'ятати, що виділення об'єктів за допомогою Select відбувається лише на активному Аркуші Excel, тому якщо потрібно щось виділити спочатку активуйте аркуші на який Вам потрібен.


Names

дозволяє повернути колекцію Names, що представляє всі іменовані діапазони в активній робочій книзі.

Range("A1") = Application.Name

- проставляє назву запущеної аплікації в клітинку A1 - Microsoft Excel.

Range("A1") = Application.ThisWorkbook.Name

- проставляє назву робочої книги з якої запущено макрос в клітинку A1 - Microsoft Excel.

Range("A1") = Application.ThisWorkbook.Sheets(1).Name

- проставляє назву 1-го аркуша робочої книги з якої запущено макрос в клітинку A1 - Microsoft Excel.

За допомогою методу Add() колекції Names ви можете також самі визначати назви обєктів.

Application.ThisWorkbook.Sheets(1).Names.Add Name:="first", RefersTo:=Range("A1")
or
Sheet1.Range("$A$1:$E$10").Name = "myData"

WorksheetFunction

Ви можете використовувати властивість WorksheetFunction в Excel VBA для доступу до вбудованих функцій Excel.

Range("A3") = Application.WorksheetFunction.Sum(Range("A1:A2"))

даний код VBA обчислює суму клітинки A1 і клітинки A2 і поміщає результат в клітинку A3

Примітка: Якщо Ви подивитесь на клітинку A3, Ви можете побачити, що сама формула не вставлена в клітинку. Щоб вставити саму формулу в клітинку A3, використовуйте наступний код:

Range("A3").Formula = "=Sum(A1:A2)"

view946like0dislike0 avatard_l4w clock 2016-05-12 02:47

Коментарі:



Для даної статті відсутні коментарі

Про нас

"Programmers World" розроблено з метою полегшення в освоєнні навичок програмування, та поширення матеріалів з сфери ІТ Українською мовою.

Кожен бажаючий може безкоштовно користуватися ресурсами сайту, щоб:

- Вивчати теоретичні аспекти мов програмування

- Переглядати практичне застосування теорії при виконанні різних міні проектів з відкритим кодом

- Розміщати свої завдання на форумі для допомоги в їх реалізації, або готового коду який може бути корисний іншим користувачам

- Спілкуватись з іншими користувачами та обмінюватись досвідом

Сайт функціонує на безопланій основі та ентузіазмі розробника, якщо Ви бажаєте долучитись до розвитку даного проекту то можете пожертвувати кошти на рахунки розміщені в блоці "Допомога сайту".

Сайт

Зареєстровані користувачі можуть скористатися системою діалогів, в профілі користувача, для отримання потрібної інформації. Написати!

Також Ви можете використати форми відправки Зауважень та Пропозицій.


Електронна пошта

Ви можете звертатись на нашу поштову скриньку site.programmersworld@gmail.com

www.000webhost.com