如何定义Excel单元格部分可见?

是否可以使用Excel互操作来定义一些可见的细胞部分?

在这里输入图像说明

我知道使用Application.ActiveWindow.VisibleRange我可以得到可见的工作表范围。 第46行的这个单元格包含在这个范围内,但是我们有一些方法可以定义单独的单元格吗?

我们的加载项将一些文本插入到单元格中。 我的任务是滚动一些选定的单元格,使其完全可见。 如果我在Excel中的这种单元格上双击,光标会出现在那里,表单滚动了一下,我想用C#代码做同样的事情。 到目前为止,我find了方法来定义用户与最后一行工作(通过使用Application.ActiveWindow.VisibleRange和滚动Application.ActiveWindow.SmallScroll ),但我不能保证最后一行总是部分可见 – 我不需要滚动完全可见的单元格。

我们可以通过使用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 

我的目标是滚动部分可见细胞,以便看到整个细胞。 如果我的代码插入一些值到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); } }