2016-11-10 1 views
0

통합 문서 내에 2 개의 시트가 있습니다. 시트 1 어디에서 매크로를 호출 오전.비활성 시트의 행 수 계산

시트 2 내에서 행을 반복하고 sucsessful 경우 "예"를 인쇄하고 싶습니다.

지금까지 저는 아래 있습니다.의

Dim TotalNumRows As Long 
Dim noRow As Integer 
With Sheets("Sheet2") 
'get the amount of rows within Q3 Joiners list 
TotalNumRows = .Range("B" & .Rows.Count).End(xlUp).Row 

.Range("B2").Select 

For userRowNo = 1 To TotalNumRows 

MsgBox ("Yes") 
ActiveCell.Offset(1, 0).Select 
    Next 

End With 

그 시트 (2) 내에서의 행의 량을 계산하지만, 에러는 '.Range ("B2")에 슬로우 Select'saying "선택 방법 범위 클래스는

+0

질문은 * WHY * 무엇이든지'.Select' 할 필요가 있습니까? –

답변

1

은 만

Sub main() 
    Dim TotalNumRows As Long 
    Dim noRow As Integer 

    With Sheets("Sheet2") 
     .Activate '<-- activate relevant worksheet 
     'get the amount of rows within Q3 Joiners list 
     TotalNumRows = .Range("B" & .Rows.Count).End(xlUp).Row 

     .Range("B2").Select 

     For noRow = 1 To TotalNumRows 
      MsgBox ("Yes") 
      ActiveCell.Offset(1, 0).Select 
     Next 
    End With 
End Sub 
+0

@ user2236280, 해결 했습니까? – user3598756

1

당신이 시트 2에서 B2를 선택 하시겠습니까 활성 워크 시트에 범위를 선택할 수 있습니다 "실패? 이 경우 먼저 .Activate()를 사용하여 시트를 활성화해야합니다. 활성 시트에서만 사물을 선택할 수 있습니다. 그렇지 않으면 라인을 제거하십시오.

일반적으로 성능 히트 및 디버깅의 어려움으로 인해 .Select 또는 .Activate를 VBA 모범 사례로 사용하지 않는 것이 좋습니다.