Відмінності між версіями «Деякі нотатки мовою VBA»
Матеріал з Вікі ЦДУ
Armyguy (обговорення • внесок) (Створена сторінка: ## Приклад автоматичного переформатування рядків. Процедура описує процес переформатува...) |
Armyguy (обговорення • внесок) |
||
(не показано 5 проміжних версій цього учасника) | |||
Рядок 1: | Рядок 1: | ||
− | + | == Приклад автоматичного переформатування рядків == | |
− | Процедура доволі проста, але функціональна. Тут вказана конкретна кількість рядків для обробки | + | Процедура описує процес переформатування рядків за принципом, один рядок отримує фоновий колір за замовченням а другий - сірий. Таке форматування корисне при аналізі наприклад друкованих на папері прайсів. |
+ | |||
+ | На початку маємо деяку таблицю, приклад зображено на Рис. 1: | ||
+ | <center>[[Файл:Before_vba_rows.JPG]]<br>Рис. 1</center> | ||
+ | |||
+ | Процедура доволі проста, але функціональна. Тут вказана конкретна кількість рядків для обробки 12 та вказаний діапазон стовпчиків від 1 до 5. Додана додаткова умова переформатування рядка, якщо перша комірка рядка містить число, то вважаємо дяний рядок за такий, який необхідно переформатувати. | ||
<pre> | <pre> | ||
Рядок 8: | Рядок 13: | ||
Dim state As Boolean | Dim state As Boolean | ||
state = False | state = False | ||
− | For i = 1 To | + | For i = 1 To 12 |
Value = Cells(i, 1) | Value = Cells(i, 1) | ||
If ((IsNumeric(Value) = True) And (Value <> "")) Then | If ((IsNumeric(Value) = True) And (Value <> "")) Then | ||
− | |||
If (state = True) Then | If (state = True) Then | ||
state = False | state = False | ||
Рядок 29: | Рядок 33: | ||
End Sub | End Sub | ||
</pre> | </pre> | ||
+ | |||
+ | У результаті виконання макросу отримуємо таблицю зображену на Рис. 2. | ||
+ | |||
+ | <center>[[Файл:After_vba_rows.JPG]]<br>Рис. 2</center> |
Поточна версія на 11:10, 23 травня 2014
Приклад автоматичного переформатування рядків
Процедура описує процес переформатування рядків за принципом, один рядок отримує фоновий колір за замовченням а другий - сірий. Таке форматування корисне при аналізі наприклад друкованих на папері прайсів.
На початку маємо деяку таблицю, приклад зображено на Рис. 1:
Рис. 1
Процедура доволі проста, але функціональна. Тут вказана конкретна кількість рядків для обробки 12 та вказаний діапазон стовпчиків від 1 до 5. Додана додаткова умова переформатування рядка, якщо перша комірка рядка містить число, то вважаємо дяний рядок за такий, який необхідно переформатувати.
Sub Macros() Dim state As Boolean state = False For i = 1 To 12 Value = Cells(i, 1) If ((IsNumeric(Value) = True) And (Value <> "")) Then If (state = True) Then state = False Range(Cells(i, 1), Cells(i, 5)).Select With Selection.Interior .ColorIndex = 15 .Pattern = xlSolid End With Else state = True Range(Cells(i, 1), Cells(i, 5)).Select Selection.Interior.ColorIndex = xlNone End If End If Next i End Sub
У результаті виконання макросу отримуємо таблицю зображену на Рис. 2.
Рис. 2