Відмінності між версіями «Деякі нотатки мовою VBA»
Матеріал з Вікі ЦДУ
Armyguy (обговорення • внесок) |
Armyguy (обговорення • внесок) |
||
Рядок 1: | Рядок 1: | ||
# Приклад автоматичного переформатування рядків. Процедура описує процес переформатування рядків за принципом, один рядок отримує фоновий колір за замовченням а другий - сірий. Таке форматування корисне при аналізі наприклад друкованих на папері прайсів. | # Приклад автоматичного переформатування рядків. Процедура описує процес переформатування рядків за принципом, один рядок отримує фоновий колір за замовченням а другий - сірий. Таке форматування корисне при аналізі наприклад друкованих на папері прайсів. | ||
− | Процедура доволі проста, але функціональна. Тут вказана конкретна кількість рядків для обробки | + | Спочатку ми маємо деяку таблицю, наприклад: |
+ | <center>[[Файл:Before_vba_rows.JPG]]</center> | ||
+ | |||
+ | Процедура доволі проста, але функціональна. Тут вказана конкретна кількість рядків для обробки 12. Додана додаткова умова переформатування рядка, якщо перша комірка рядка містить число, то вважаємо дяний рядок за такий, який необхідно переформатувати. | ||
<pre> | <pre> | ||
Рядок 8: | Рядок 11: | ||
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 | ||
Рядок 29: | Рядок 32: | ||
End Sub | End Sub | ||
</pre> | </pre> | ||
+ | |||
+ | У результаті виконання макросу отримуємо: | ||
+ | |||
+ | <center>[[Файл:After_vba_rows.JPG]]</center> |
Версія за 10:59, 23 травня 2014
- Приклад автоматичного переформатування рядків. Процедура описує процес переформатування рядків за принципом, один рядок отримує фоновий колір за замовченням а другий - сірий. Таке форматування корисне при аналізі наприклад друкованих на папері прайсів.
Спочатку ми маємо деяку таблицю, наприклад:
Процедура доволі проста, але функціональна. Тут вказана конкретна кількість рядків для обробки 12. Додана додаткова умова переформатування рядка, якщо перша комірка рядка містить число, то вважаємо дяний рядок за такий, який необхідно переформатувати.
Sub Macros() Dim state As Boolean state = False For i = 1 To 12 Value = Cells(i, 1) If ((IsNumeric(Value) = True) And (Value <> "")) Then ' MsgBox (Value) 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
У результаті виконання макросу отримуємо: