|
|
|
| Excel
есть два столбца с данными, рядом выделяю третий столбец и жму баттона, процедура должна сравнить данные по строкам из первых двух столбцов и если истина закрасить третью ячейку в строке сравнения, если фальшь, то оставить как есть.
Private Sub CommandButton1_Click()
Dim cur_range As Range
With ActiveSheet
Set cur_range = Selection
cur_range.Activate
If .[R[-2]C].Value < .[R[-1]C].Value Then
With cur_range.Interior
.ColorIndex = 4
End With
End If
End With
End Sub
Ругаться, не ругается!!! Но и не хрена не делает, подскажите ПЛЗ в чем прикол.
Заранее Сенкс. | |
|
| |
|
|
|
| Хммм?!!
Че-то на старом форуме как-то поживее все было. Год не заходил:((( все забыл:))))
А напомнить некому. | |
|
| |
|
|
|
| рекомендую пошагово оттрассировать код и посмотреть - действительно ли выделяется требуемый диапазон... | |
|
| |
|
|
|
| 1. Изменение цвета заливки, в зависимости от данных других ячеек, легко реализуется с помощью условного форматирования.
2. Причём установить условное форматирование можно как вручную, так и программно, причём последнее аозволит значительно ускоритьпроцесс выполнения макроса.
3. Если использование условного форматирование невозможно, то Ваш макрос может выглядить следующим образом.
Private Sub CommandButton1_Click()
If Me.ProtectContents = True Then
MsgBox "Изменение параметров форматирования в защищённом листе может привести к проблемам", , ""
Exit Sub
End If
If Selection.Column < 3 Then
MsgBox "Нельзя выделять первые два столбца", , ""
Exit Sub
End If
With Selection.Columns(1)
.Interior.ColorIndex = xlNone
'иначе заливка останется прежней и возможны нежелательные эффекты
Dim iCell As Range
For Each iCell In .Cells
If IsNumeric(iCell.Item(1, -1)) And _
IsNumeric(iCell.Item(1, 0)) Then
If iCell.Item(1, -1) < iCell.Item(1, 0) Then _
iCell.Interior.ColorIndex = 4
End If
Next
End With
End Sub
|
| |
|
| |
|
|
|
| Да нет господа, я прекрасно сведемлен об условном форматировании, изменение цвета меня интересовало только лишь в свете сравнения значений ячеек. У меня условие гораздо сложнее и решил потренироваться на мелоче.
У меня подозрение что относительная ссылка на ячейки криво пашет.
А изменение цвета как сигнал что условие выполнено, не более. | |
|
| |
|
|
|
| А если бы Вы были также прекрасно осведомлены том, что такое относительная ссылка в формуле, что такое об'ект Range, и как производится сравнение значений ячеек диапазона, то подозрений в мифической кривости - просто бы не возникло. | |
|
| |