Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Выделение строк Excel при условии высоты строки - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выделение строк Excel при условии высоты строки (Макросы/Sub)
Выделение строк Excel при условии высоты строки
ArtyLight Дата: Вторник, 12.02.2019, 18:47 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день, нужно макрос для выделения строк в екселе при условии высоты строки менее или наоборот более.

Заранее спасибо
 
Ответить
СообщениеДобрый день, нужно макрос для выделения строк в екселе при условии высоты строки менее или наоборот более.

Заранее спасибо

Автор - ArtyLight
Дата добавления - 12.02.2019 в 18:47
krosav4ig Дата: Вторник, 12.02.2019, 19:45 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2346
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здрвствуйте[vba]
Код
Sub asd()
    Const dRh# = 15.75
    Dim rRow As Range, r As Range, r1 As Range
    
    With ActiveSheet.UsedRange
        .Interior.Color = xlNone
        For Each rRow In .Rows
            Select Case True
                Case rRow.RowHeight >= dRh
                    If r Is Nothing Then
                        Set r = rRow
                    Else
                        Set r = Union(r, rRow)
                    End If
                Case rRow.RowHeight < dRh
                    If r1 Is Nothing Then
                        Set r1 = rRow
                    Else
                        Set r1 = Union(r1, rRow)
                    End If
            End Select
        Next
    End With
    r.Rows.Interior.Color = vbRed
    r1.Rows.Interior.Color = vbGreen
    
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеЗдрвствуйте[vba]
Код
Sub asd()
    Const dRh# = 15.75
    Dim rRow As Range, r As Range, r1 As Range
    
    With ActiveSheet.UsedRange
        .Interior.Color = xlNone
        For Each rRow In .Rows
            Select Case True
                Case rRow.RowHeight >= dRh
                    If r Is Nothing Then
                        Set r = rRow
                    Else
                        Set r = Union(r, rRow)
                    End If
                Case rRow.RowHeight < dRh
                    If r1 Is Nothing Then
                        Set r1 = rRow
                    Else
                        Set r1 = Union(r1, rRow)
                    End If
            End Select
        Next
    End With
    r.Rows.Interior.Color = vbRed
    r1.Rows.Interior.Color = vbGreen
    
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 12.02.2019 в 19:45
vikttur Дата: Вторник, 12.02.2019, 21:43 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Другое видение того же кода[vba]
Код
Sub asd()
    Const dRh# = 15.75
    Dim rRow As Range, r As Range, r1 As Range
    
    With ActiveSheet.UsedRange
        .Interior.Color = xlNone
        
        For Each rRow In .Rows
            Select Case rRow.RowHeight
            Case Is >= dRh: Call AddRange(r, rRow)
            Case Is < dRh:: Call AddRange(r1, rRow)
            End Select
        Next
    End With
    
    If Not r Is Nothing Then r.Rows.Interior.Color = vbRed
    If Not r1 Is Nothing Then r1.Rows.Interior.Color = vbGreen
    
    Set r = Nothing: Set r1 = Nothing
End Sub

Sub AddRange(rRng As Range, rRow As Range)
    If rRng Is Nothing Then
        Set rRng = rRow
    Else
        Set rRng = Union(rRng, rRow)
    End If
End Sub
[/vba]


Сообщение отредактировал vikttur - Вторник, 12.02.2019, 22:32
 
Ответить
СообщениеДругое видение того же кода[vba]
Код
Sub asd()
    Const dRh# = 15.75
    Dim rRow As Range, r As Range, r1 As Range
    
    With ActiveSheet.UsedRange
        .Interior.Color = xlNone
        
        For Each rRow In .Rows
            Select Case rRow.RowHeight
            Case Is >= dRh: Call AddRange(r, rRow)
            Case Is < dRh:: Call AddRange(r1, rRow)
            End Select
        Next
    End With
    
    If Not r Is Nothing Then r.Rows.Interior.Color = vbRed
    If Not r1 Is Nothing Then r1.Rows.Interior.Color = vbGreen
    
    Set r = Nothing: Set r1 = Nothing
End Sub

Sub AddRange(rRng As Range, rRow As Range)
    If rRng Is Nothing Then
        Set rRng = rRow
    Else
        Set rRng = Union(rRng, rRow)
    End If
End Sub
[/vba]

Автор - vikttur
Дата добавления - 12.02.2019 в 21:43
ArtyLight Дата: Вторник, 12.02.2019, 21:54 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 29
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
ub asd()
    Const dRh# = 15.75
    Dim rRow As Range, r As Range, r1 As Range
    
    With ActiveSheet.UsedRange
        .Interior.Color = xlNone
        For Each rRow In .Rows
            Select Case True
                Case rRow.RowHeight >= dRh
                    If r Is Nothing Then
                        Set r = rRow
                    Else
                        Set r = Union(r, rRow)
                    End If
                Case rRow.RowHeight < dRh
                    If r1 Is Nothing Then
                        Set r1 = rRow
                    Else
                        Set r1 = Union(r1, rRow)
                    End If
            End Select
        Next
    End With
    r.Rows.Interior.Color = vbRed
    r1.Rows.Interior.Color = vbGreen
    
End Sub


 
Ответить
Сообщение
ub asd()
    Const dRh# = 15.75
    Dim rRow As Range, r As Range, r1 As Range
    
    With ActiveSheet.UsedRange
        .Interior.Color = xlNone
        For Each rRow In .Rows
            Select Case True
                Case rRow.RowHeight >= dRh
                    If r Is Nothing Then
                        Set r = rRow
                    Else
                        Set r = Union(r, rRow)
                    End If
                Case rRow.RowHeight < dRh
                    If r1 Is Nothing Then
                        Set r1 = rRow
                    Else
                        Set r1 = Union(r1, rRow)
                    End If
            End Select
        Next
    End With
    r.Rows.Interior.Color = vbRed
    r1.Rows.Interior.Color = vbGreen
    
End Sub



Автор - ArtyLight
Дата добавления - 12.02.2019 в 21:54
vikttur Дата: Вторник, 12.02.2019, 22:29 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Зачем эта копия в цитате? Зачем рисунок? Ошибки нужно в файле показывать.
Видимо, пустой диапазон (такие строки не найдены)


Сообщение отредактировал vikttur - Вторник, 12.02.2019, 22:46
 
Ответить
СообщениеЗачем эта копия в цитате? Зачем рисунок? Ошибки нужно в файле показывать.
Видимо, пустой диапазон (такие строки не найдены)

Автор - vikttur
Дата добавления - 12.02.2019 в 22:29
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выделение строк Excel при условии высоты строки (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!