2012-12-09 7 views
0

Excel에서 한 셀에 여러 값을 입력하려면 통합 문서에 시트가 여러 개있는 경우 특정 조건을 기반으로 한 다음 이름 TC로 시작하는 시트 거기에 색이 들어 있으면 Excel 통합 문서의 읽어보기 섹션에 다른 워크 시트의 정보를 입력해야합니다. 내 코드의 문제는 색칠을 포함하는 고유 한 시트를 표시하지 않는다는 것입니다. 시트 "TC_1"및 "TC_3"이 셀의 색상을 포함하고 "TC_3; TC_3; TC_3;"으로 출력을 표시한다고 가정합니다. 여기에 예상되는 출력은 "TC_1; TC_3"입니다. 나는이 당신을 위해 작동합니다 생각Excel에서 한 셀에 여러 값 입력하기

Sub ErrorInSheet() 
    Dim Row 
    Dim Names As String 
    Names = "" 

    For Row = 2 To tsheet.UsedRange.Rows.Count 
     For Chkcol = 1 To tsheet.UsedRange.Columns.Count 
      If tsheet.Cells(Row, Chkcol).Interior.ColorIndex = 3 Then 
       Names = Names & ";" & tsheet.Name 
      End If 
     Next 
    Next Row 

    Sheets("Read Me").Cells(13, 5).Value = Names 

End Sub 

Sub iterateSheets() 

    For Each sheet1t In Worksheets 

     If InStr(1, sheet1t.Name, "TC") Then 
      Set tsheet = sheet1t 
      Call ErrorInSheet 
     End If 
    Next 
End Sub 

답변

2

- 나는 그것을 테스트하고 나를 위해 일한 : 여기

는 코드입니다.

Sub FindErrors() 
    Dim sht As Worksheet, cl As Range, shtNames As String 

    shtNames = vbNullString 

    For Each sht In Worksheets 
     If Left$(sht.Name, 2) = "TC" Then 
      For Each cl In sht.UsedRange.Cells 
       If cl.Interior.ColorIndex = 3 Then 
        shtNames = IIf(shtNames = vbNullString, sht.Name, shtNames & ";" & sht.Name) 
       End If 
      Next cl 
     End If 
    Next sht 

    Worksheets("Read Me").Cells(13, 5) = shtNames 
End Sub 

참고 :

  1. 내가 명시 적으로 내가 Left$을 사용했습니다 있도록 모든 시트 "TC"로 시작하는 가정입니다 만 만약 당신이 좋아하면 당신은 InStr를 사용할 수있는 변수를
  2. 를 선언했습니다
  3. 난 당신이 하나의 0에서 나는 모든 코드를 삽입 한 선도적 인 ;
  4. 를 받고 중지 삼항 IIF 문을 사용했습니다하지만 원하는 경우 나눌 수 있습니다.
+0

이 시나리오를 수행하는 데 다른 방법을 보여 주셔서 감사합니다. –

+0

문제 없습니다. 다행스럽게도 도움이되었습니다. –