#excel #vba
Вопрос:
В столбце A1:A145 нужен код для выделения цвета. Примените цвет формата в A1, сколько строк? Основывайтесь на изображении1. введите описание изображения здесь
В столбце А 14 строк будут иметь желтый цвет , следующие 14 строк будут синими и так далее. (номер всегда будет меняться) В столбце B нужно повторить число, которое указано в столбце D.
В поисках этого изображения результата 2 введите описание изображения здесь
Приведенный ниже код копирует только цвет и номер из столбца C в конце строки A:145, нам нужно попытаться выделить строки, основанные на другом значении ячейки, работая с листом 1 до листа 8 или более листов.
Sub Color_My_Cells() Application.ScreenUpdating = False Dim i As Long Dim Lastrow As Long Lastrow = Cells(Rows.Count, "A").End(xlUp).Row Dim Lastrowa As Long Lastrowa = Cells(Rows.Count, "B").End(xlUp).Row For i = 1 To Lastrowa Cells(Lastrow, 1).Resize(Cells(i, 2).Value) = Cells(i, 2).Value Cells(Lastrow, 1).Resize(Cells(i, 2)).Interior.Color = Cells(i, 2).Interior.Color Lastrow = Cells(Rows.Count, "A").End(xlUp).Row 1 Next Application.ScreenUpdating = True End Sub
Комментарии:
1. Почему код ссылается на столбец
B
, когда данные находятся в столбцеC
?2. Потому что я изменил столбцы файлов Excel.
Ответ №1:
@GoalExcel приведенный ниже код просматривает все листы в вашем файле Excel и повторяет те же действия для каждого из них.
Sub ColorMyCells() Dim i, j, intRowCounterAB, intRowC As Integer For Each ws In ThisWorkbook.Sheets ws.Activate intRowC = Evaluate("=COUNTA(C:C)") intRowCounterAB = 1 For i = 1 To intRowC For j = 0 To Range("C" amp; i).Value - 1 Range("A" amp; intRowCounterAB).Interior.Color = Range("C" amp; i).Interior.Color Range("B" amp; intRowCounterAB).Value = Range("D" amp; i).Value intRowCounterAB = intRowCounterAB 1 Next j Next i Next ws End Sub
Комментарии:
1. Спасибо @ricardogerbaudo, работает идеально!!. Что касается многих листов, см. Комментарии выше, лист 1 до листа 8 или менее всегда меняется, как запускать код таким образом.
2. @GoalExcel Я отредактировал исходный код, чтобы включить еще один цикл, который проходит через все существующие листы в вашем файле Excel (рабочей книге).