【问题标题】:How define is Excel cell partially visible ?如何定义 Excel 单元格部分可见?
【发布时间】:2016-07-01 12:54:16
【问题描述】:

是否可以使用 Excel 互操作来定义某些单元格是否部分可见?

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

我们的插件在单元格中插入一些文本。我的任务是滚动一个选定的单元格以使其完全可见。如果我在 Excel 中双击这样的单元格,光标会出现在那里并且工作表会滚动一点,我想对 C# 代码做同样的事情。 到目前为止,我找到了定义用户使用最后一行的情况的方法(通过使用Application.ActiveWindow.VisibleRange 并使用Application.ActiveWindow.SmallScroll 滚动),但我不能保证最后一行总是部分可见 - 我不需要滚动完全可见细胞。

【问题讨论】:

    标签: c# excel office-interop vba


    【解决方案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
    

    【讨论】:

    • 感谢您的回答。最终我找到了解决我的任务的方法,我使用的方法与你的方法非常相似。但是,我不太明白为什么“最后一个可见行总是部分可见”,你有没有参考一些文档?我知道 1 个像素可以使单元格部分可见,但我们可能会遇到这样的情况,即没有任何部分可见的单元格并且可见范围适合工作簿的整个工作视图。
    • 你是对的,它并不总是可见的。我删除了帖子的那部分。我将尝试修复该功能并重新发布。
    【解决方案2】:

    我的目标是滚动部分可见的单元格以查看整个单元格。如果我的代码将一些值插入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);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-19
      • 1970-01-01
      • 2018-09-29
      • 2016-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-27
      相关资源
      最近更新 更多