2016-07-01 3 views
0

Excel interop을 사용하여 부분적으로 보이는 셀을 정의 할 수 있습니까?Excel 셀을 부분적으로 어떻게 볼 수 있습니까?

enter image description here

나는 Application.ActiveWindow.VisibleRange를 사용하여 내가 시트의 가시 범위를 얻을 수 있다는 것을 알고. 행 46에있는이 셀은이 범위에 포함되어 있지만 부분적으로 만 표시되는 개별 셀을 정의하는 몇 가지 방법이 있습니까?

추가 기능은 텍스트를 셀에 삽입합니다. 내 작업은 셀을 완전히 볼 수 있도록 약간의 셀을 스크롤합니다. Excel에서 이러한 셀을 두 번 클릭하면 커서가 그 위에 표시되고 시트가 약간 스크롤됩니다. C# 코드에서도 동일한 작업을 수행하려고합니다. 지금까지 사용자가 마지막 행을 사용하여 (Application.ActiveWindow.VisibleRange을 사용하고 Application.ActiveWindow.SmallScroll으로 스크롤) 사례를 정의하는 방법을 찾았지 만 마지막 행이 항상 부분적으로 표시 될 수 있다고 보장 할 수는 없습니다. 완전히 보이는 셀을 스크롤 할 필요가 없습니다.

답변

1

우리는 페이지의 상단에 셀을 가지고 Application.Goto를 사용하여 다음 ActiveWindow.LargeScroll

Sub MakeLastCellPartiallyVisible(rCell As Range) 
    Dim lastVRow As Long 
    lastVRow = rCell.Row + rCell.Rows.Count - 1 
    Application.Goto Reference:=Rows(lastVRow), Scroll:=True 
    ActiveWindow.LargeScroll Down:=-1 
End Sub 
+0

답장을 보내 주셔서 감사합니다. 결국 나는 내 작업을 수정하는 방법을 찾았는데, 나는 당신과 매우 비슷하게 접근했다. 그러나, 나는 왜 "마지막으로 보이는 행이 항상 부분적으로 보이는지"하는 이유를 이해하지 못합니다. 어떤 문서에 대한 언급이 있습니까? 1 픽셀로 셀을 부분적으로 볼 수 있지만, 부분적으로 보이는 셀이없고 가시 범위가 통합 문서의 전체 작업보기에 맞으면 대소 문자를 만날 수 있음을 알고 있습니다. – Alezis

+0

당신은 정확합니다. 항상 눈에 보이지는 않습니다. 나는 그 부분을 삭제했다. 나는 그 기능을 고치고 다시 게시 할 것이다. –

0

내 목표를 사용하여 페이징하여 범위의 마지막 셀을 부분적으로 볼 수 있습니다 순서대로 스크롤 부분적으로 보이는 세포이었다 전체 세포를 볼 수 있습니다. 내 코드가 A46 셀 (질문에서)에 일부 값을 삽입하면 전체 셀을 보려면 조금 아래로 스크롤해야합니다. C#의 메소드 :

public void MakeCellVisible(int columnIndex, int rowIndex) 
{ 
    var visibleRange = Application.ActiveWindow.VisibleRange; 
    var lastColumn = visibleRange.Column + visibleRange.Columns.Count - 1; 
    var lastRow = visibleRange.Row + visibleRange.Rows.Count - 1; 

    int down, toRight; 
    if (rowIndex == lastRow) 
    { 
     down = 1; 
    } 

    if (columnIndex == lastColumn) 
    { 
     toRight = 1; 
    } 

    if (0 != down || 0 != toRight) 
    { 
     Application.ActiveWindow.SmallScroll(Down: down, ToRight: toRight); 
    } 
} 
관련 문제