Відмінності між версіями «Деякі нотатки мовою 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