2016-06-06 2 views
0

첫 번째 행 외에 모든 워크 시트의 모든 데이터를 삭제하는 쿼리가 있습니다. 나는이 셀 워크 시트 각각에서 셀 "A2"를 활성화하고 싶지만 실제로 이해할 수는 없습니다. 어떤 아이디어?VBA : 모든 워크 시트에서 셀을 선택하는 데 문제가 있음

Sub ClearWorkbook() 
    Dim Current As Worksheet 
    For Each Current In Worksheets 
     Current.Rows("2:" & Rows.Count).ClearContents 
    Next 
End Sub 
+0

'Current.Range ("A2") Activate' -하지만 당신은 각 페이지의 셀을 활성화 할 필요가 왜.? 아니면 당신이하고 싶은 다른 것이 있습니까? –

+0

'Current.Rows ("2 :"& Rows.Count)'를'Current.Rows ("2 :"& Current.Range ("A"& Rows.Count) "로 변경하면 더 나을 것입니다. End (xlUp) .Row' 컬럼 A는 항상 모든 데이터를 가질 수 있다고 가정합니다 ** 각 시트에 대한 실제 ** 데이터 행 –

+0

워크 시트에서 삭제 된 모든 셀을 강조 표시합니다. 복사 및 붙여 넣기 중에 더 쉽게 나타납니다 "Range ("A2 "). Activate"가 모든 시트에서 작동하지 않는 것 같은데 어떤 아이디어가 있습니까? – Rob

답변

3

는 의견을 요약하면 :

Sub ClearWorkbook() 

Dim Current As Worksheet 

For Each Current In Worksheets 
    If Current.Cells(Current.Rows.Count, "A").End(xlUp).Row >= 2 Then 
     Current.Rows("2:" & Current.Cells(Current.Rows.Count, "A").End(xlUp).Row).ClearContents 
    End If 
    Current.Activate 
    Current.Range("A2").Select 
Next 

End Sub 
+0

이것은 1 행의 내용을 다음과 같이 삭제하는 것으로 보입니다. 어떤 이유로 든. 생각? – Rob

+0

시트가 이미 비어 있고 'Current.Cells (Current.Rows.Count, ""). End (xlUp) .Row'가 헤더 열을 생성하는 경우에 발생할 수 있습니다. 따라서 위의'If' 절을 사용하지 않거나'+ 1 '만큼 숫자를 늘릴 수 있습니다. – Ralph

+0

모든 도움에 감사드립니다. @Scott Holtzman과 같은 당신! – Rob

관련 문제