2016-10-20 5 views
-1

노란색이며, 각각 특정 배경색 일부 행이 포함 된 경우 노란색 특정 색상이있는 모든 세포 또는 행의 배경 색상을 (제거 할 수 있나요 워크 시트에서 내 경우) 백그라운드에서제거 배경색 색상은 내가 매를 많이 들어있는 워크 시트를 엑셀

here is an example file

+0

찾기 및 바꾸기와 함께 VBA없이 더 좋은 옵션 https://www.extendoffice.com/documents/excel/2746-excel-find-and-replace-fill-color.html#a1 – Slai

+0

예 Slai, 작동 원리 VBA 옵션보다 훨씬 더 나은 – khalil

답변

0

는 네, 가능합니다. 특정 범위의 Range.Interior.Color 값을 확인해야합니다. VBA에서이 같을 것이다 :

If ActiveWorksheet.Range("A1").Interior.Color = RGB(255,255,0) Then 
    'Do something 
End If 

RGB(255,255,0)이 경우 노란색입니다. 다른 모든 값을 사용할 수도 있습니다. RGB Function을 참조하십시오. 컬러 사용이 제거하려면 : 도움이 더 필요하면

Range("A1").Interior.Pattern = xlNone 

를, 당신의 문제에 관한 더 상세한 정보를 제공 및/또는 댓글을 남겨주세요.

또한 이러한 링크를 확인 할 수 있습니다 : Range.Interior, Interior.Color.

편집 : 귀하의 예제 데이터에 따르면, 당신은 열 "E", "F", "G"와 "H"다양한 시트에서 녹색 색상을 제거 할 수 있습니다. 녹색의 RGB는 RGB(146,208,80)입니다.

Sub removeColor() 
    Dim lastRow As Long 
    Dim ws As Worksheet 
    Dim i As Long 
    Dim color As Long 
    color = RGB(146, 208, 80) 
    For Each ws In ThisWorkbook.Worksheets 
     lastRow = ws.Range("A65536").End(xlUp).Row 
     For i = 3 To lastRow 
      If ws.Range("E" & i).Interior.color = color Then 
       ws.Range("E" & i).Interior.Pattern = xlNone 
      End If 
      If ws.Range("F" & i).Interior.color = color Then 
       ws.Range("F" & i).Interior.Pattern = xlNone 
      End If 
      If ws.Range("G" & i).Interior.color = color Then 
       ws.Range("G" & i).Interior.Pattern = xlNone 
      End If 
      If ws.Range("H" & i).Interior.color = color Then 
       ws.Range("H" & i).Interior.Pattern = xlNone 
      End If 
     Next i 
    Next ws 
End Sub 

편집 :이 코드는 일을해야

Sub removeColor() 
    Dim ws As Worksheet 
    Dim cell as Range 
    Dim color As Long 
    color = RGB(146, 208, 80) 
    For Each ws In ThisWorkbook.Worksheets 
     For Each cell in ws.UsedRange 
      If cell.Interior.Color = color Then 
       cell.Interior.Pattern = xlNone 
      End If 
     Next cell 
    Next ws 
End Sub 
+0

감사 파비안 F, 여기에 내가 세포에서 녹색 배경을 제거 할 예 XLSX 파일의 링크 [http://www.filedropper.com/example_9] – khalil

+0

은 예제 파일 – khalil

+0

감사의 편집을 참조하시기 바랍니다 , 내 예제에서 작동하지만, 확실하게 다른 셀을 색칠 할 수 있기 때문에 모든 셀을 반복하고 싶다면 어떻게해야할까요? – khalil

0

이 개봉 된 문제를 해결할 수 있습니다 : 당신이 그들의 색이 사용하는 모든 세포를 확인하려면

For i = 1 To Sheets.Count 
    On Error GoTo nex: 
    Sheets(i).Activate 
    For j = 1 To ActiveSheet.Cells.Find("*", SearchOrder:=xlByRows, LookIn:=xlValues, SearchDirection:=xlPrevious).Row 
     For k = 1 To ActiveSheet.Cells.Find("*", SearchOrder:=xlByColumns, LookIn:=xlValues, SearchDirection:=xlPrevious).Column 
      '65535 equals yellow 
      '5296274 equals green 
      If ActiveSheet.Cells(j, k).Interior.Color = 65535 Then ActiveSheet.Cells(j, k).Interior.Pattern = xlNone 
     Next 
    Next 
nex: 
Next 

루프는 모든 워크 시트를 거치며 사용 된 모든 셀에서 배경색을 찾습니다.

MsgBox (ActiveSheet.Cells(1, 1).Interior.Color) 

희망 내가 도울 수 :

당신이 원하는 색상 및 실행 다음 코드 단지 색상 A1이 할 수있는 색상을 나타내는 번호를합니다.

+0

을 필요로하는 모든이,이 코드는 코드가 마지막 시트에있을 것입니다 완료 후, 그래서 그들을 활성화 모든 시트 throuh가는 제 3 시트 – khalil

+0

에 저를 보내. – FatTony

+0

녹색으로 바꾸려면 (예를 들어 파일에서와 같이) 65535가 색상 노란색에 맞기 때문에 'If ActiveSheet.Cells (j, k) .Interior.Color = 65535 Then'을 변경해야합니다. – FatTony