Добрый день, уважаемые форумчане!
Благодаря Jack Famous и статьям по vba получилось сделать работающий макрос Выделить_минимум , который при выделении несмежных диапазонов(=$A$2:$A$4;$C$2:$C$4;$E$2:$E$4) красит минимальные значения ячеек в строке. Однако не могу теперь разобраться с вопросом, почему при передаче дополнительного условия (не присваивать минимум если ячейка имеет заливку If arr(st, 1).Value <= min And arr(st, 1).Interior.Color = 0 Then ...) макрос перестает работать, точнее он работает, но не присваивает минимум ни одной ячейке.
Работающий макрос ниже.
Помогите, пожалуйста, подправить макрос таким образом, чтобы в результате работы макроса получалась необходимая раскраска, как в примере во вложении.
Благодарю за помощь!
Благодаря Jack Famous и статьям по vba получилось сделать работающий макрос Выделить_минимум , который при выделении несмежных диапазонов(=$A$2:$A$4;$C$2:$C$4;$E$2:$E$4) красит минимальные значения ячеек в строке. Однако не могу теперь разобраться с вопросом, почему при передаче дополнительного условия (не присваивать минимум если ячейка имеет заливку If arr(st, 1).Value <= min And arr(st, 1).Interior.Color = 0 Then ...) макрос перестает работать, точнее он работает, но не присваивает минимум ни одной ячейке.
Работающий макрос ниже.
Код |
---|
Property Get RangeInputBox(Prompt As String, Optional Title As String) As Range Dim F As Variant, R As Range F = Application.InputBox(Prompt, Title, , , , , , 0) On Error Resume Next F = Trim(Mid(Application.ConvertFormula(F, xlR1C1, xlA1, True), 2)) Set R = Range(F) On Error GoTo 0 Set RangeInputBox = R End Property Sub Выделить_минимум() Dim min As Single Dim R As Range, arr As Range Dim st As Integer Dim cl As Integer Dim i As Integer Set R = RangeInputBox("Введите диапазон", "Выделение минимума") For st = 1 To R.Areas(1).Rows.Count min = 1000 For i = 1 To R.Areas.Count Set arr = R.Areas(i) If arr(st, 1).Value <= min Then min = arr(st, 1).Value End If Next i For k = 1 To R.Areas.Count Set arr_2 = R.Areas(k) If min = arr_2(st, 1).Value Then arr_2(st, 1).Interior.Color = vbGreen End If Next k Next st MsgBox min End Sub |
Помогите, пожалуйста, подправить макрос таким образом, чтобы в результате работы макроса получалась необходимая раскраска, как в примере во вложении.
Благодарю за помощь!