2012-08-25 2 views
2

요약 : Excel 목록에서 여러 시트의 이름을 사용하여 "마스터 목록"에서 함께 컴파일하는 매크로를 작성하고 있습니다. 다른 시트의 셀을 참조하는 데 문제가 있습니다.VBA 제대로 작동하지 않는 시트 이름을 사용하는 셀 참조

문제 :Sheets("MasterList").ActiveCell.Offset(0, 1)과 함께 시트 이름을 참조로 사용하는 특정 셀을 참조 할 때 아무 것도 나타나지 않습니다. 그러나 Sheets("MasterList")을 제거하면 매크로가 제대로 작동합니다 (이 매크로가 현재 작동하는 유일한 방법 인 경우 "MasterList"에 있음). 또한 시트 이름에 대한 맞춤법이 제 코드에서 정확했습니다.

질문 : 왜 이런 일이 발생합니까? 코드 뒤에있는 논리는 소리가 나고 시트 이름의 철자가 정확합니다.

코드 :

Do    

    If Sheets("MasterList").ActiveCell.Offset(0, 1) = firstName Then  'IF FIRST AND LAST NAMES MATCH, EXIT THE CHECK 

      Exit Do 

    End If 

    On Error Resume Next 

    Cells.Find(What:=lastName, After:=ActiveCell, LookIn:=xlFormulas, _ 
    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ 
    MatchCase:=False, SearchFormat:=False).Activate 

Loop Until Err.Number > 0 
+0

Activecell은 Excel 응용 프로그램 개체의 속성이며 워크 시트. 현재 활성 창에서 활성 셀을 나타냅니다. –

+1

+1 평상시처럼 멋지게 설명 된 질문입니다. 팀/크리스가 언급 한 것 외에 두 가지. 1)'오류 발생시 다음으로 실행'코드에서 버립니다. OERN의 사용은 "능동적 인"프로그래밍으로 사용하지 않는 한 피해야합니다. 2)'.Find'와'.FindNext'를 사용하는 방법을 설명하는이 링크를 사용하는 것이 좋습니다. http://siddharthrout.wordpress.com/2011/07/14/find-and-findnext-in-excel-vba/ –

+0

@SiddharthRout 평소와 같이 유용한 자료 : D +1. 찾기 튜토리얼은 나에게 정말 도움이 될 것입니다. OERN을 제거하는 것에 관해서는, 내가 찾던 것을 찾지 못했다면 어떻게 find 함수가 여전히 작동하는지 모르겠다. 그러나 이것은 자습서에서 설명되어있을 것이라고 확신한다 : p –

답변

5

ActiveCellApplication 개체의 속성이 아니라 Sheet입니다.

ActiveCell 하나만 있으며 현재 활성화 된 시트의 활성 셀입니다.

당신이하려는 일이 완전히 명확하지 않습니다. 하지만 일반적으로 SelectActivate은 이러한 종류의 코드로 피해야합니다.

Dim wsMasterList as Worksheet 
Set wsMasterList = Thisworkbook.WorkSheets("MasterList") ' assuming the vba code is in the workbook containing MasterList 

그런 다음 MasterList 사용에 대한 검색 해당 셀

를 기준으로 셀을 참조하는 rMasterList.Offset(0, 1)를 사용 MasterList에서 마지막으로 사용한 셀

Dim rMasterList as Range 
Set rMasterList = wsMasterList.Cells(... ' Specify the cell you want 

같은 변수를 사용하여 추적하려면 다음과 같이 뭔가를해야만 대신 사용 :

Dim cl as Range 
Set cl = wsMasterList.UsedRange.Find(...) 
If Not cl Is Nothing Then 
    ' cl will be Nothing if the search term is not found 
    ' ... 
+0

+1 멋지게 설명합니다. –

관련 문제