Код:
Public Sub HighLightRows()
Dim i As Integer
i = 2
Dim c As Integer
c = 2 'Color 1
'Dim colorIndex As XlColorIndex: colorIndex = Application.Dialogs(xlDialogEditColor).Show(10)
'MsgBox colorIndex
Do While (Cells(i, 1) <> "")
If (Cells(i, 1) <> Cells(i - 1, 1)) Then 'check for different value in cell A (index=1)
If c = 2 Then
c = 24 'color 2
Else
c = 2 'color 1
End If
End If
Rows(Trim(Str(i)) + ":" + Trim(Str(i))).Interior.colorIndex = c
i = i + 1
Loop
End Sub
Этот код отлично работает и меняет цвет при изменении значения в столбце. Но цвета указаны в коде. Я хочу, чтобы пользователь выбирал цвет по своему выбору.
Вывод, который я получаю с приведенным выше кодом:
Что я хочу, чтобы код делал:
Откройте цветовая палитра.
Пользователь выбирает цвет.
Индекс цвета передается в переменную.
При изменении значения строки окрашиваются попеременно белым и выбранным цветом.
Например. если пользователь выбирает синий цвет в палитре, строки будут сине-белыми с чередующимися группами. Если пользователь выбирает зеленый цвет из палитры, строки будут зелеными и белыми с чередующимися группами.
Dim colorIndex As XlColorIndex: colorIndex = Application.Dialogs(xlDialogEditColor).Show(10)
MsgBox colorIndex
палитра открывается отлично, но MsgBox colorIndex
дает мне -1 в качестве вывода.
Кажется, я не могу заставить это работать. Любые изменения в коде.?