요약 : 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
Activecell은 Excel 응용 프로그램 개체의 속성이며 워크 시트. 현재 활성 창에서 활성 셀을 나타냅니다. –
+1 평상시처럼 멋지게 설명 된 질문입니다. 팀/크리스가 언급 한 것 외에 두 가지. 1)'오류 발생시 다음으로 실행'코드에서 버립니다. OERN의 사용은 "능동적 인"프로그래밍으로 사용하지 않는 한 피해야합니다. 2)'.Find'와'.FindNext'를 사용하는 방법을 설명하는이 링크를 사용하는 것이 좋습니다. http://siddharthrout.wordpress.com/2011/07/14/find-and-findnext-in-excel-vba/ –
@SiddharthRout 평소와 같이 유용한 자료 : D +1. 찾기 튜토리얼은 나에게 정말 도움이 될 것입니다. OERN을 제거하는 것에 관해서는, 내가 찾던 것을 찾지 못했다면 어떻게 find 함수가 여전히 작동하는지 모르겠다. 그러나 이것은 자습서에서 설명되어있을 것이라고 확신한다 : p –