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

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

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

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

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


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

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

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

Рахунки

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

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

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

Статистика

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

VBA : Об'єкт Excel. Application інші його корисні властивості та методи (Частина 2)

ConvertFormula

можливість перетворити формулу двома способами: або перевести адресацію клітинок в інший режим (наприклад, замість A1 в R1C1), або поміняти абсолютні посилання на відносні і навпаки. Як параметр приймає строкову змінну з текстом формули.

Синтаксис:

ConvertFormula(Formula, FromReferenceStyle, ToReferenceStyle, ToAbsolute)

Formula - приймає текст формули з якою потрібно провести конвертацію

FromReferenceStyle - з якого формату конвертуємо А1 чи R1C1

ToReferenceStyle - в який формат конвертуємо А1 чи R1C1

ToAbsolute - абсолютне посилання (задається значенням True або False)

[a1] = Application.ConvertFormula("=R2C1", xlR1C1, xlA1, True)

Дуже корисним може бути перетворення з відносних посилань на абсолютні, так як вставка формул із макросу, зазвичай, конвертується автоматично у формат який проставлено налаштуваннями Excel

Evaluate

дуже корисний і часто використовуваний метод. Дозволяє на ім'я знайти об'єкт книги Excel і перетворити його в об'єкт або значення для подальшого використання. Як імена цей метод приймає:

- імена осередків в стилі A1 (повертається об'єкт Cell)

- імена діапазонів (повертається об'єкт Range)

- імена, визначені в макросі (найчастіше - назви змінних)

- посилання на зовнішні книги (наприклад, Evaluate("[Книга1.xls]Аркуш1!A5"))

Цю функцію можна викликати і неявно - просто уклавши ім'я об'єкта в квадратні дужки. Наприклад, такі рядки будуть абсолютно однаковими за значенням:

[A1].Value = 25
Evaluate( "A1").Value = 25

Оскільки синтаксис з квадратними дужками коротше, найчастіше використовується саме він.

Таким чином, метод Evaluate() - це найпростіший і природній метод звернутися до осередку або діапазону в своїй або чужій книзі Excel.

Intersect

повертає діапазон, який представляє область перетину двох інших (або більше) діапазонів. Якщо передані в якості параметрів діапазони не перетинаються, повертається Nothing.

If Not Intersect(Range("A2:B2"), Range("A1:A14")) Is Nothing Then MsgBox "Діапазони перетинаються"

в даному прикладі видно що діапазони перетинаються в клітинці A2 і буде виведено відповідне повідомлення.

OnKey

цей метод дозволяє "посадити" процедуру VBA на певну клавіатурну комбінацію. Наприклад, щоб призначити процедуру Test() з модуля Module1 клавіатурній комбінації + , можна скористатися командою

Sub Test()
	Application.OnKey "%{m}", "Module1.Test"
	MsgBox "Текст повідомлення"
End Sub 

Якщо Ви перепризначували стандартне поєднання (типу тих же Ctrl + C) наприклад на Application.OnKey "^C", "Test()", то після виконання Application.OnKey "^C" - клавішам повернеться їх історичне призначення.

Деякі скорочення для гарячих клавіш:

КлавішаДоступ до даної клавішіКлавішаДоступ до даної клавіші
ESC{ESCAPE} або {ESC}Від F1 до F15{F1} до {F15}
Tab{TAB}Caps Lock{CAPSLOCK}
Shift+Ctrl^
Alt%Num Lock{NUMLOCK}
Backspace{BACKSPACE} або (BS)Enter{ENTER}
Scroll Lock{SCROLLLOCK} або (BS)Break{BREAK}
lnsert{INSERT}Delete або Del{DELETE} або {DEL}
Home{HOME}End{END}
Page Up{PGUP}Page Down{PGDN}
вниз{DOWN}вверх{UP}
вправо{RIGHT}влево{LEFT}

SendKeys

дозволяє емулювати натискання клавіш і передати їх в активне вікно програми.

В даному прикладі використовується функція Shell для запуску програми "Калькулятор", наявний в Microsoft Windows. Потім за допомогою інструкції SendKeys імітується натискання клавіш для введення чисел і подальшого виходу з калькулятора. Інструкція SendKeys не використовується на Macintosh.

Оскільки інструкція AppActivate передає фокус на додатк "Калькулятор", цей приклад не можна виконати в покроковому debug режимі (F8).

Sub Test()
'оголошуємо змінні'
Dim ReturnValue As Variant
Dim i As Integer
    ReturnValue = Shell("CALC.EXE", 1)                    'запускає команду для запуску каркулятора'
    If Application.Wait(Now + TimeValue("0:00:2")) Then   'створюємо невелику паузу для очікування відкриття калькулятора'
        AppActivate ReturnValue                           'активуємо каркулятор'
        For i = 1 To 10                                   'створюємо цикл'
            SendKeys i & "{+}", True                      'передаємо дані калькулятору'
        Next i                                            'переходимо на наступний крок в циклі'
        SendKeys "=", True                                'вивести суму'
        SendKeys "%{F4}", True                            'ALT+F4 закрити каркулятор (затерти для перегляду результату)'
    End If
End Sub

Union

це важливий метод дозволяє об'єднати два або більше діапазонів.

Давайте обєднаємо два діапазони значень із колонки А і виведемо їх в окремому стовпці:

Sub Test()
'оголошуємо змінні'
Dim i As Integer
Dim x As Variant, p As Variant	
    Set x = Union(Range("Аркуш1!A1:A2"), Range("Аркуш1!A4:A5"))  'обєднюємо діапазони і призначеємо їх змінній "х"'
	i = 1  'створюємо змінну для початкового рядка в який будуть виводитись дані'
    For Each p In x  'перебираємо всі значення нашого нового діапазону'
        Range("C" & i) = p  'виводимо значення з діапазону в колонку С з і-м рядком'
        i = i + 1  'збільшуємо і для виведення наступного значення'
    Next
End Sub 

Wait

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

If Application.Wait(Now + TimeValue("0:00:5")) Then
	MsgBox "П'ять секунд пройшло"
End If 

де Now - Системна дата і час


view380like0dislike0 avatard_l4w clock 2016-05-17 00:48

Коментарі:



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

Про нас

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

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

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

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

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

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

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

Сайт

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

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


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

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

www.000webhost.com