2013-10-15 2 views
1

Я хочу дать диапазон вместо смещения в следующем коде. следующий код копирует цвет из диапазона (C5: F11) в смещение i, но я хочу указать диапазон, подобный диапазону (M5: P11). Я попробовал просто заменить смещение по диапазону, но он не работает должным образом. Пожалуйста, помогитеКак указать диапазон вместо смещения, excel VBA?

Sub MatchColors2() 

For Each myCellColor In Range("C5:F11") 
    myCellColor.Offset(0, 8).Interior.ColorIndex = myCellColor.Interior.ColorIndex 
Next 
End Sub 

Благодаря

ответ

3

Наряду с вашим требованием, это также работает для диапазонов с более чем одной области, то есть, несмежных диапазонов:

Sub MatchColors2() 
Dim rngTo As Excel.Range 
Dim rngFrom As Excel.Range 
Dim i As Long 
Dim j As Long 

Set rngTo = ActiveSheet.Range("C5:D11,F5:G11") 
Set rngFrom = ActiveSheet.Range("I5:J11,L5:M11") 

For i = 1 To rngFrom.Areas.Count 
    For j = 1 To rngFrom.Areas(i).Cells.Count 
     rngTo.Areas(i).Cells(j).Interior.ColorIndex = rngFrom.Areas(i).Cells(j).Interior.ColorIndex 
    Next j 
Next i 
End Sub 
+0

+ 1 взбитое !! ( –

+0

спасибо, он отлично работал. –

+0

@ SiddharthRout, это редкое событие! –

Смежные вопросы