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

Вход

Регистрация

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

 

= Мир MS Excel/Поиск максимального значения в таблице - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск максимального значения в таблице (Макросы/Sub)
Поиск максимального значения в таблице
rubin Дата: Суббота, 29.10.2016, 16:32 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте, не могли бы помочь. Задача: 1.1 надо найти позицию первого максимального числа по строкам и по столбцам и залить его цветом. 1.2. найти все максимумы.
Таблица прикрепленна в 1 файле, там три кнопки, при нажатии на них должны выделяться максим.числа.
К сообщению приложен файл: 4618278.xlsm(27Kb)
 
Ответить
СообщениеЗдравствуйте, не могли бы помочь. Задача: 1.1 надо найти позицию первого максимального числа по строкам и по столбцам и залить его цветом. 1.2. найти все максимумы.
Таблица прикрепленна в 1 файле, там три кнопки, при нажатии на них должны выделяться максим.числа.

Автор - rubin
Дата добавления - 29.10.2016 в 16:32
gling Дата: Воскресенье, 30.10.2016, 15:24 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 325 ±
Замечаний: 0% ±

2010
Здравствуйте. Вариант в файле.
К сообщению приложен файл: 0207350.xlsm(28Kb)
 
Ответить
СообщениеЗдравствуйте. Вариант в файле.

Автор - gling
Дата добавления - 30.10.2016 в 15:24
rubin Дата: Понедельник, 31.10.2016, 17:40 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
gling, спасибо большое
 
Ответить
Сообщениеgling, спасибо большое

Автор - rubin
Дата добавления - 31.10.2016 в 17:40
rubin Дата: Понедельник, 31.10.2016, 17:50 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
rubin, не подскажите, если я написал такой код, не могли бы пожалуйста помочь, он у меня выделяет одно максимальное число к примеру по столбцам, а как сделать,чтобы несколько значений выделял, значения ведь могут повторяться
[vba]
Код

Sub МаксимумСтрока()
Set Диапазон= Selection
'Проверка того, чтобы выделенная область состояла из одного диапазона
If Диапазон.Areas.Count > 1 Then
    Exit Sub
End If
'Нахождение числа строк и столбцов у диапазона
n = Диапазон.Rows.Count
M = Диапазон.Columns.Count
Maxim = Диапазон.Cells(1, 1).Value
For j = 1 To M
     For i = 1 To n
       Диапазон.Cells(i, j).ClearFormats
        s = Диапазон.Cells(i, j).Value
        If (Maxim < s) Then
            Maxim = s
            x = i
            y = j
        End If
    Next i
Next j
Диапазон.Cells(x, y).Interior.ColorIndex = 7
End Sub
Sub МаксимумСтолбец()
Set Диапазон = Selection
If Диапазон.Areas.Count > 1 Then
    Exit Sub
End If
n = Диапазон.Rows.Count
M = Диапазон.Columns.Count
Maxim = Диапазон.Cells(1, 1).Value
For i = 1 To n
      For j = 1 To M
       Диапазон.Cells(i, j).ClearFormats
        s = Диапазон.Cells(i, j).Value
        If (Maxim < s) Then
            Maxim = s
            x = i
            y = j
        End If
    Next j
Next i
Диапазон.Cells(x, y).Interior.ColorIndex = 3
End Sub

Sub ВсеМакросы()
Dim rng As Range
Dim c As Range
Dim max As Double
Set rng = Range("B2:E4")
max = Application.WorksheetFunction.max(rng)
        For Each c In rng
                If c.Value = max Then
                    c.Font.Bold = True
                    c.Font.Color = RGB(255, 0, 0)
                Else
                    c.Font.Bold = False
                    c.Font.Color = RGB(0, 0, 0)
                End If
                Next
       
    
End Sub
                    

[/vba]
 
Ответить
Сообщениеrubin, не подскажите, если я написал такой код, не могли бы пожалуйста помочь, он у меня выделяет одно максимальное число к примеру по столбцам, а как сделать,чтобы несколько значений выделял, значения ведь могут повторяться
[vba]
Код

Sub МаксимумСтрока()
Set Диапазон= Selection
'Проверка того, чтобы выделенная область состояла из одного диапазона
If Диапазон.Areas.Count > 1 Then
    Exit Sub
End If
'Нахождение числа строк и столбцов у диапазона
n = Диапазон.Rows.Count
M = Диапазон.Columns.Count
Maxim = Диапазон.Cells(1, 1).Value
For j = 1 To M
     For i = 1 To n
       Диапазон.Cells(i, j).ClearFormats
        s = Диапазон.Cells(i, j).Value
        If (Maxim < s) Then
            Maxim = s
            x = i
            y = j
        End If
    Next i
Next j
Диапазон.Cells(x, y).Interior.ColorIndex = 7
End Sub
Sub МаксимумСтолбец()
Set Диапазон = Selection
If Диапазон.Areas.Count > 1 Then
    Exit Sub
End If
n = Диапазон.Rows.Count
M = Диапазон.Columns.Count
Maxim = Диапазон.Cells(1, 1).Value
For i = 1 To n
      For j = 1 To M
       Диапазон.Cells(i, j).ClearFormats
        s = Диапазон.Cells(i, j).Value
        If (Maxim < s) Then
            Maxim = s
            x = i
            y = j
        End If
    Next j
Next i
Диапазон.Cells(x, y).Interior.ColorIndex = 3
End Sub

Sub ВсеМакросы()
Dim rng As Range
Dim c As Range
Dim max As Double
Set rng = Range("B2:E4")
max = Application.WorksheetFunction.max(rng)
        For Each c In rng
                If c.Value = max Then
                    c.Font.Bold = True
                    c.Font.Color = RGB(255, 0, 0)
                Else
                    c.Font.Bold = False
                    c.Font.Color = RGB(0, 0, 0)
                End If
                Next
       
    
End Sub
                    

[/vba]

Автор - rubin
Дата добавления - 31.10.2016 в 17:50
vlaste Дата: Четверг, 03.11.2016, 14:34 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
gling, не подскажите, если я написал такой код, не могли бы пожалуйста помочь, он у меня выделяет одно максимальное число к примеру по столбцам, а как сделать,чтобы несколько значений выделял, значения ведь могут повторяться

[vba]
Код
Sub МаксимумСтрока()
Set Диапазон= Selection
'Проверка того, чтобы выделенная область состояла из одного диапазона
If Диапазон.Areas.Count > 1 Then
    Exit Sub
End If
'Нахождение числа строк и столбцов у диапазона
n = Диапазон.Rows.Count
M = Диапазон.Columns.Count
Maxim = Диапазон.Cells(1, 1).Value
For j = 1 To M
    For i = 1 To n
    Диапазон.Cells(i, j).ClearFormats
        s = Диапазон.Cells(i, j).Value
        If (Maxim < s) Then
            Maxim = s
            x = i
            y = j
        End If
    Next i
Next j
Диапазон.Cells(x, y).Interior.ColorIndex = 7
End Sub
Sub МаксимумСтолбец()
Set Диапазон = Selection
If Диапазон.Areas.Count > 1 Then
    Exit Sub
End If
n = Диапазон.Rows.Count
M = Диапазон.Columns.Count
Maxim = Диапазон.Cells(1, 1).Value
For i = 1 To n
    For j = 1 To M
    Диапазон.Cells(i, j).ClearFormats
        s = Диапазон.Cells(i, j).Value
        If (Maxim < s) Then
            Maxim = s
            x = i
            y = j
        End If
    Next j
Next i
Диапазон.Cells(x, y).Interior.ColorIndex = 3
End Sub

Sub ВсеМакросы()
Dim rng As Range
Dim c As Range
Dim max As Double
Set rng = Range("B2:E4")
max = Application.WorksheetFunction.max(rng)
        For Each c In rng
                If c.Value = max Then
                    c.Font.Bold = True
                    c.Font.Color = RGB(255, 0, 0)
                Else
                    c.Font.Bold = False
                    c.Font.Color = RGB(0, 0, 0)
                End If
                Next
    
    
End Sub
[/vba]
 
Ответить
Сообщениеgling, не подскажите, если я написал такой код, не могли бы пожалуйста помочь, он у меня выделяет одно максимальное число к примеру по столбцам, а как сделать,чтобы несколько значений выделял, значения ведь могут повторяться

[vba]
Код
Sub МаксимумСтрока()
Set Диапазон= Selection
'Проверка того, чтобы выделенная область состояла из одного диапазона
If Диапазон.Areas.Count > 1 Then
    Exit Sub
End If
'Нахождение числа строк и столбцов у диапазона
n = Диапазон.Rows.Count
M = Диапазон.Columns.Count
Maxim = Диапазон.Cells(1, 1).Value
For j = 1 To M
    For i = 1 To n
    Диапазон.Cells(i, j).ClearFormats
        s = Диапазон.Cells(i, j).Value
        If (Maxim < s) Then
            Maxim = s
            x = i
            y = j
        End If
    Next i
Next j
Диапазон.Cells(x, y).Interior.ColorIndex = 7
End Sub
Sub МаксимумСтолбец()
Set Диапазон = Selection
If Диапазон.Areas.Count > 1 Then
    Exit Sub
End If
n = Диапазон.Rows.Count
M = Диапазон.Columns.Count
Maxim = Диапазон.Cells(1, 1).Value
For i = 1 To n
    For j = 1 To M
    Диапазон.Cells(i, j).ClearFormats
        s = Диапазон.Cells(i, j).Value
        If (Maxim < s) Then
            Maxim = s
            x = i
            y = j
        End If
    Next j
Next i
Диапазон.Cells(x, y).Interior.ColorIndex = 3
End Sub

Sub ВсеМакросы()
Dim rng As Range
Dim c As Range
Dim max As Double
Set rng = Range("B2:E4")
max = Application.WorksheetFunction.max(rng)
        For Each c In rng
                If c.Value = max Then
                    c.Font.Bold = True
                    c.Font.Color = RGB(255, 0, 0)
                Else
                    c.Font.Bold = False
                    c.Font.Color = RGB(0, 0, 0)
                End If
                Next
    
    
End Sub
[/vba]

Автор - vlaste
Дата добавления - 03.11.2016 в 14:34
gling Дата: Четверг, 03.11.2016, 18:33 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 325 ±
Замечаний: 0% ±

2010
vlaste, Вариант в файле. Что то вроде такого: [vba]
Код
Sub MaxStrok()
Application.ScreenUpdating = False
    Dim MaxStr As Long, e As Range
    Dim R As Long, c As Long
    With Selection
        '.Interior.Pattern = xlNone
        R = .Rows.Count
        c = .Columns.Count
        For i = 1 To R
        MaxStr = Application.max(Range(Cells(i, 1), Cells(i, c)).Value)
        For j = 1 To c
        If Cells(i, j) = MaxStr And MaxStr <> 0 Then
                Cells(i, j).Interior.ColorIndex = 4
        End If
        Next
        Next
    End With
Application.ScreenUpdating = True
End Sub
[/vba]
К сообщению приложен файл: Max.xlsm(31Kb)


Сообщение отредактировал gling - Четверг, 03.11.2016, 18:48
 
Ответить
Сообщениеvlaste, Вариант в файле. Что то вроде такого: [vba]
Код
Sub MaxStrok()
Application.ScreenUpdating = False
    Dim MaxStr As Long, e As Range
    Dim R As Long, c As Long
    With Selection
        '.Interior.Pattern = xlNone
        R = .Rows.Count
        c = .Columns.Count
        For i = 1 To R
        MaxStr = Application.max(Range(Cells(i, 1), Cells(i, c)).Value)
        For j = 1 To c
        If Cells(i, j) = MaxStr And MaxStr <> 0 Then
                Cells(i, j).Interior.ColorIndex = 4
        End If
        Next
        Next
    End With
Application.ScreenUpdating = True
End Sub
[/vba]

Автор - gling
Дата добавления - 03.11.2016 в 18:33
gling Дата: Четверг, 03.11.2016, 18:51 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 325 ±
Замечаний: 0% ±

2010
rubin, vlaste, чья это тема? Зарегистрировался дважды?


Сообщение отредактировал gling - Четверг, 03.11.2016, 18:51
 
Ответить
Сообщениеrubin, vlaste, чья это тема? Зарегистрировался дважды?

Автор - gling
Дата добавления - 03.11.2016 в 18:51
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск максимального значения в таблице (Макросы/Sub)
Страница 1 из 11
Поиск:

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