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

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

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

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

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


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

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

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

Рахунки

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

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

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

Статистика

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

VBA : Додаткові властивості Range

AddComment

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

ThisWorkbook.Sheets(1).Range("A1").AddComment "Важлива примітка"

AutoFill

можливість використовувати автозаповнення для діапазону. Приймає 2 параметри:

Destination - Обов'язковий параметр. Клітинки повинні бути заповнені. Призначення повинно включати вихідний діапазон.

Type - Необов'язковий параметр. Визначає тип файлу.

наприклад, якщо перші два осередки будуть заповнені як 1 і 2, то далі в автоматичному режимі буде продовжено: 3, 4, 5 і т.п.

Set sheet1 = ThisWorkbook.Sheets(1)
sheet1.Range("A1") = 1
sheet1.Range("A2") = 2
Set SourceRange = sheet1.Range("A1:A2")
Set FillRange = sheet1.Range("A1:A20")
SourceRange.AutoFill Destination:=FillRange

BorderAround

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

ПараметрОпис
LineStyleОдна з констант XlLineStyle, що визначають стиль лінії для межі. Може приймати наступні значення: xlContinuous(1) - безперервна лінія
xlDash(-4115) - штрихована лінія
xlDashDot(4) - змінний рисочки і крапки
xlDashDotDot(5) - тире слідують двома точками
xlDot(-4118) - пунктирна лінія
xlDouble(-4119) - подвійна лінія
xlLineStyleNone(-4142) - без лінії
xlSlantDashDot(13) - похилі рисочки
WeightТовщина межі. Може приймати наступні значення:
Hairline - тонка пунктирна
Thin - тонка
Medium - середня
Thick - товста
ColorIndexКолір межі, як індекс в поточній колірній палітрі або в якості константи XlColorIndex.
Colorколір межі, як значення RGB.
ThemeColorТема кольору, як індекс в поточній колірній темі або в якості значення XlThemeColor (xlThemeColorAccent1(5), xlThemeColorAccent2(6), xlThemeColorAccent3(7), xlThemeColorAccent4(8), xlThemeColorAccent5(9), xlThemeColorAccent6(10), xlThemeColorDark1(1), xlThemeColorDark2(3), xlThemeColorFollowedHyperlink(12), xlThemeColorHyperlink(11), xlThemeColorLight1(2), xlThemeColorLight2(4))
ThisWorkbook.Sheets(1).Range("A1:A4").BorderAround ColorIndex:=3, Weight:=xlMedium

Consolidate

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

ПараметрОпис
SourcesДжерела консолідації як масив текстових рядків в стилі позначень R1C1. Посилання повинні включати повний шлях листів.
FunctionОдна з констант XlConsolidationFunction, який визначає тип консолідації. Константи:
xlAverage - середнє
xlCount - кількість
xlCountNums - кількість числових значень
xlDistinctCount - кількість за допомогою аналізу Distinct Count
xlMax - максимум
xlMin - мінімум
xlProduct - множина
xlStDev - стандартне відхилення, на основі вибірки
xlStDevP - стандартне відхилення, на основі всього населення
xlSum - сума
xlUnknown - субтотальна функція не вказано
xlVar - варіація, на основі вибірки
xlVarP - варіація, на основі всього населення
TopRowTrue, щоб консолідувати дані, засновані на заголовках стовпців у верхньому рядку діапазонів консолідації. False для консолідації даних по позиції. Значення за замовчуванням дорівнює False.
LeftColumnTrue, щоб консолідувати дані, засновані на назвах рядків в лівій колонці діапазонів консолідації. False для консолідації даних по позиції. Значення за замовчуванням дорівнює false.
CreateLinksTrue, щоб мати використання консолідації посилань на робочі аркуші. False - мати консолідацію копіювання даних. Значення за замовчуванням дорівнює false.
ThisWorkbook.Sheets(1).Range("A5").Consolidate Sources:=Array("Аркуш2!R1C1:R37C6", "Аркуш3!R1C1:R37C6"), Function:=xlSum

CopyFromRecordset

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

Data - Об'єкт Recordset скопіювати в діапазон.

MaxRows - Максимальна кількість записів для копіювання на аркуші. Якщо цей аргумент опущений, всі записи в об'єкті Recordset копіюються.

MaxColumns - Максимальне число полів для копіювання на аркуші. Якщо цей аргумент опущений, всі поля в об'єкті Recordset копіюються.

For iCols = 0 To rs.Fields.Count - 1
    ws.Cells(1, iCols + 1).Value = rs.Fields(iCols).Name
Next
ws.Range(ws.Cells(1, 1), ws.Cells(1, rs.Fields.Count)).Font.Bold = True
ws.Range("A2").CopyFromRecordset rs

DataSeries

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

ПараметрОпис
RowcolМоже бути xlRows або xlColumns і мати ряд даних, введених в рядках або стовпцях, відповідно. Якщо цей аргумент опущений, використовується розмір і форма діапазону.
TypeТип для рядів даних.
DateЯкщо тип аргументу xlChronological, дата аргумент вказує одиницю кроку дати.
StepЗначення кроку для серії. Значення за замовчуванням дорівнює 1.
StopЗначення зупинки для серії. Якщо цей аргумент опущений, Microsoft Excel заповнює до кінця діапазону.
TrendTrue, щоб створити лінійний тренд або тенденція зростання. Помилкові створити стандартний ряд даних. Значення за замовчуванням дорівнює False.
Set sheet1 = ThisWorkbook.Sheets(1)
Set DateRange = sheet1.Range("A1:A12")
sheet1.Range("A1").Formula = "1-JAN-1992"
DateRange.DataSeries Type:=xlChronological, Date:=xlMonth

Dirty

позначити осередки діапазону як "брудні". Такі осередки будуть перераховані при наступному ж перерахунку. Зазвичай використовується, коли Excel сам не може здогадатися, що їх потрібно перерахувати. Перерахувати осередки діапазону можна і примусово - за допомогою методу Calculate().

ThisWorkbook.Sheets(1).Range("A3").Dirty

Fill (FillDown, FillUp, FillLeft, FillRight)

дозволяють розмножити одне і те ж значення по осередках діапазону в зазначеному вами напрямку.

ThisWorkbook.Sheets(1).Range("A2") = 2
ThisWorkbook.Sheets(1).Range("A2:A4").FillDown

GoalSeek

дозволяє застосувати автопідбір значень для функції Excel програмним способом.

Goal - Обов'язковий параметр. Значення, яке ви хочете повернути в цьому осередку.

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

Наприклад в осередку А1 ми маємо певну формулу із змінними даними з іншого осередку, потрібно зробити підбір так, щоб результатом виконання формули було число 15

Sub Test()
    Set mySheet = ThisWorkbook.Sheets(1)
    mySheet.Range("A1").Formula = "=5*A2+3/5+2*A2"
    mySheet.Range("A1").GoalSeek Goal:=15, ChangingCell:=mySheet.Range("A2")
End Sub 

Merge, UnMerge

дозволяє злити всі осередки діапазону в один. При цьому залишиться тільки одне значення - верхній лівий осередок. Приймає 2 значення True - об'єднати по рядках в межах діапазону, False - об'єднати в один. За замовчуванням приймає False

Sub Test()
    DisplayAlerts = 0
    ThisWorkbook.Sheets(1).Range("A1:B2").Merge (True)
    DisplayAlerts = 1
End Sub 

Для розбиття назад такого злитого осередку на кілька звичайних можна за допомогою методу UnMerge ().

ThisWorkbook.Sheets(1).Range("A1:B2").UnMerge

PrintOut і PrintPreview

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

Sub Test()
    ThisWorkbook.Sheets(1).Range("A1:D100").PrintOut
    ThisWorkbook.Sheets(1).Range("A1:D100").PrintPreview
End Sub 

Resize

можливість змінити поточний діапазон. Наприклад, збільшення його на один стовпець вниз і один рядок вправо може виглядати так:

Set oRange = ThisWorkbook.Sheets(1).Range("A1")
oRange.Resize(oRange.Rows.Count + 1, oRange.Columns.Count + 1).Select

ShowDependents, ShowPrecedents

показати стрілки для осередків, які залежать від зазначеного діапазону (тільки перший рівень залежності) або ці стрілки прибрати. Зворотній метод - ShowPrecedents для відображення зв'язків із впливаючі на осередок значеннями. За замовчуванням приймають значення False, щоб прибрати стрілки замінити на True

Sub Test()
    Set myRange = ThisWorkbook.Sheets(1).Range("A1:D5")
    For Each element In myRange
        element.ShowDependents False
		'або
        element.ShowPrecedents False
    Next element
End Sub 

Також прибрати всі стрілки на аркуші можна скориставшись:

ThisWorkbook.Sheets(1).ClearArrows

ShowErrors

показати джерело помилки для зазначеної комірки.

Sub Test()
    Set myRange = ThisWorkbook.Sheets(1).Range("A1:D5")
    For Each element In myRange
        If IsError(element.Value) Then
            element.ShowErrors
        End If
    Next element
End Sub 

Speak

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

ПараметрОпис
TextТекст який потрібно проговорити.
SpeakAsyncTrue змусить текст вимовлятись в асинхронному режимі. False змусить текст вимовлятись синхронно. За замовчуванням значення False.
SpeakXMLTrue змусить текст інтерпретуватися як XML. False змусить текст не інтерпретуватися як XML, тому будь-які теги XML читатимуться і не будуть інтерпретовані. За замовчуванням значення False.
PurgeTrue будь-який буферний текст буде очищений перш ніж вимовлятись. False будь-який буферний текст не буде очищений перш ніж вимовлятись. За замовчуванням значення False.
ThisWorkbook.Sheets(1).Range("B1").Speak
'або просто прочитати текст без використання клітинки
Application.Speech.Speak "Hello World!"

SpecialCells

дуже зручний метод, який дозволяє повернути об'єкт Range, що включає в себе всі осередки певного типу (порожні, з помилками, з коментарями, останні, з константами, з формулами, з певним форматуванням) і з певним значенням. Наприклад, щоб повернути об'єкт Range, що складається з усіх порожніх клітинок діапазону, можна використовувати код

Set oRange = ThisWorkbook.Sheets(1).Range("A1:I14").SpecialCells(xlCellTypeBlanks)
oRange.Select

SubTotal

цей метод дозволяє порахувати підсумкове значення для діапазону (можна вибрати агрегатную функцію і безліч інших параметрів).

ПараметрОпис
GroupByОбов'язкове. Поле для групування.
FunctionОбов'язкове. Субтотальна функція.
TotalListОбов'язкове. Масив зсувів поля 1 на основі, із зазначенням полів, до яких додаються проміжні підсумки.
ReplaceНеобов'язкове. True, щоб замінити існуючі підсумки. За умовчанням встановлено значення True.
PageBreaksНеобов'язкове. True, щоб додати розриви сторінок після кожної групи. Значення за замовчуванням дорівнює False.
SummaryBelowDataНеобов'язкове. Місця зведення даних щодо підсумку.
Set sheet1 = ThisWorkbook.Sheets(1)
sheet1.Activate
sheet1.Range("A1").Select 'в 1 рядку заголовок таблички
Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(2, 4, 5)

Table

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

Set sheet1 = ThisWorkbook.Sheets(1)
Set dataTableRange = sheet1.Range("A1:K11")
Set rowInputCell = sheet1.Range("A12")
Set columnInputCell = sheet1.Range("A13")
sheet1.Range("A1").Formula = "=A12*A13"
For i = 2 To 11
    sheet1.Cells(i, 1) = i - 1
    sheet1.Cells(1, i) = i - 1
Next i
dataTableRange.Table rowInputCell, columnInputCell

Text

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

Set myValue = ThisWorkbook.Sheets(1).Range("B1")
myValue.Value = "8/1/2016"
myValue.NumberFormat = "dd mmmm yyyy"
MsgBox myValue.Value
MsgBox myValue.Text

Validation

це властивість дозволяє повернути об'єкт Validation, за допомогою якого можна налаштувати перевірку даних які вводяться в діапазон.

With Selection.Validation
    .Delete
    .Add Type:=xlValidateDecimal, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="5", Formula2:="10"
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = "Ціль"
    .ErrorTitle = "Ціль"
    .InputMessage = "Введіть ціле число від п'яти до десяти"
    .ErrorMessage = "Ви повинні ввести число від п'яти до десяти"
    .ShowInput = True
    .ShowError = True
End With 

view507like0dislike0 avatard_l4w clock 2016-07-21 22:57

Коментарі:



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

Про нас

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

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

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

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

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

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

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

Сайт

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

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


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

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

www.000webhost.com