Відмінності між версіями «Деякі нотатки мовою VBA»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
(Створена сторінка: ## Приклад автоматичного переформатування рядків. Процедура описує процес переформатува...)
 
 
(не показано 5 проміжних версій цього учасника)
Рядок 1: Рядок 1:
## Приклад автоматичного переформатування рядків. Процедура описує процес переформатування рядків за принципом, один рядок отримує фоновий колір за замовченням а другий - сірий. Таке форматування корисне при аналізі наприклад друкованих на папері прайсів.
+
== Приклад автоматичного переформатування рядків ==
  
Процедура доволі проста, але функціональна. Тут вказана конкретна кількість рядків для обробки 7013. Додана додаткова умова переформатування рядка, якщо перша комірка рядка містить число, то вважаємо дяний рядок за такий, який необхідно переформатувати.
+
Процедура описує процес переформатування рядків за принципом, один рядок отримує фоновий колір за замовченням а другий - сірий. Таке форматування корисне при аналізі наприклад друкованих на папері прайсів.
 +
 
 +
На початку маємо деяку таблицю, приклад зображено на Рис. 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 7013
+
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
        ' MsgBox (Value)
 
 
         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:

Before vba rows.JPG
Рис. 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.

After vba rows.JPG
Рис. 2