如何定义 Excel 单元格部分可见?
How define is Excel cell partially visible ?
是否可以使用 Excel 互操作来定义某些单元格是否部分可见?
我知道使用 Application.ActiveWindow.VisibleRange 我可以获得 sheet 的可见范围。
第 46 行的这个单元格包含在这个范围内,但我们是否有一些方法来定义单个单元格是否仅部分可见?
我们的加载项将一些文本插入到单元格中。我的任务是滚动一个选定的单元格以使其完全可见。如果我双击 Excel 中的这样的单元格,光标会出现在那里并且 sheet 会滚动一点,我想用 C# 代码做同样的事情。
到目前为止,我找到了定义用户使用最后一行的情况的方法(通过使用 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);
}
}
是否可以使用 Excel 互操作来定义某些单元格是否部分可见?
我知道使用 Application.ActiveWindow.VisibleRange 我可以获得 sheet 的可见范围。 第 46 行的这个单元格包含在这个范围内,但我们是否有一些方法来定义单个单元格是否仅部分可见?
我们的加载项将一些文本插入到单元格中。我的任务是滚动一个选定的单元格以使其完全可见。如果我双击 Excel 中的这样的单元格,光标会出现在那里并且 sheet 会滚动一点,我想用 C# 代码做同样的事情。
到目前为止,我找到了定义用户使用最后一行的情况的方法(通过使用 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);
}
}