여러 워크 시트를 사용할 때 Chris는 모든 워크 시트를 스크롤하는 것을 ‘잠그는’방법이 있는지 궁금합니다. 예를 들어 100 ~ 140 행과 G ~ P 열이 표시 될 때까지 Sheet1을 아래로 스크롤하면 Sheet2 (또는 다른 워크 시트)로 전환 할 때 동일한 행과 열이 표시되기를 원합니다. 워크 시트.

이 작업을 수행하는 유일한 방법은 매크로를 사용하는 것입니다. 무슨 일이 일어나야하는지 매크로는 시트가 비활성화되었을 때 (남은 상태) 어떤 행과 열이 표시되는지 확인한 다음 활성화 된 시트 (사용자가 이동하려는 시트)의 표시를 동일한 행과 열로 설정해야한다는 것입니다. ThisWorkbook 모듈에 추가 된 다음 매크로는이 작업을 정확하게 수행합니다.

Dim grngSelection As Range Dim gintScrollColumn As Integer Dim glngScrollRow As Long

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

If TypeName(ActiveSheet) = "Worksheet" Then         On Error Resume Next         With ActiveWindow             Sh.Range(grngSelection.Address).Select             .ScrollColumn = gintScrollColumn             .ScrollRow = glngScrollRow         End With     End If End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)

Dim oSheet As Object     If TypeName(Sh) = "Worksheet" Then         Set oSheet = ActiveSheet         Application.EnableEvents = False         Sh.Activate         With ActiveWindow             gintScrollColumn = .ScrollColumn             glngScrollRow = .ScrollRow             Set grngSelection = .RangeSelection         End With         oSheet.Activate         Application.EnableEvents = True     End If End Sub

이벤트 핸들러 외부의 변수 사용에 유의하십시오. 이러한 변수는 SheetDeactivate 처리기에서 SheetActivate 처리기로 열, 행 및 선택한 영역의 값을 전달하는 데 사용됩니다.

물론 자동 솔루션을 원하지 않을 수도 있습니다. 대신 사용자가 워크 시트 동기화 여부를 트리거하는 특정 단계를 수행하도록 할 수 있습니다. 통합 문서의 일반 모듈에 다음 매크로를 추가하여 수행 할 수 있습니다.

Global WindowScrollRow Global WindowScrollCol Global WindowSyncOn As Boolean

Public Sub WindowLock()

If Not WindowSyncOn Then         WindowScrollRow = ActiveWindow.VisibleRange.Row         WindowScrollCol = ActiveWindow.VisibleRange.Column         Application.StatusBar = "WindowSync: ON"

Else         Application.StatusBar = ""

End If     WindowSyncOn = Not WindowSyncOn End Sub

이 매크로가하는 일은 전역 변수 WindowSyncOn의 상태를 확인하는 것입니다. 값이 False이면 맨 위에 보이는 행과 가장 왼쪽에 보이는 열에 대한 현재 설정이 전역 변수에 저장됩니다. 이러한 변수의 설정은 ThisWorkbook 모듈에 추가 된 다음 이벤트 처리기에서 사용됩니다.

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

If WindowSyncOn Then         If Not ActiveWindow Is Nothing Then             ActiveWindow.ScrollRow = WindowScrollRow             ActiveWindow.ScrollColumn = WindowScrollCol         End If     End If End Sub

매크로는 단순히 WindowSyncOn 변수의 설정을 확인하고 True (설정된 경우) 인 경우 매크로는 활성 창의 상단과 왼쪽에있는 행과 열을 설정합니다.

_ 참고 : _

이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요].

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (3860)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다.